/*
 * MyHCI.java
 *
 * Created on October 30, 2009, 1:06 AM
 */


import java.awt.print.PrinterException;
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.ButtonModel;
import javax.swing.ListModel;
import javax.swing.table.TableModel;
import javax.swing.ComboBoxModel;
import javax.swing.DefaultListModel;
import javax.swing.JRadioButton;
import javax.swing.JList;
import javax.swing.JTable;
import javax.swing.JComboBox;
import javax.swing.DefaultComboBoxModel;

import java.util.*;
/**
 *
 * @author  Disc
 */
public class MyHCI extends javax.swing.JFrame implements QuaterlyScheduleListener {
    private final String TITLE = "My HCI: Class Auto Planner",
                         UNDG = "Undergraduate",
                         POST = "Postbaccalareate",
                         EXTE = "Extended Education",
                         DELIM = " - ";
    private File globalFilename = null;
    private Profile profile = new Profile();
    private JDBCAccess db = new JDBCAccess();

    private Hashtable geClassTitle2ID = new Hashtable();

   /** Creates new form MyHCI */
    public MyHCI() {
        initComponents();
        centerMainFrame();
        initLoad();
        jFrameStart.setVisible(true);
    }


    private void saveProfile() {
        readjFramesForProfile();
        javax.swing.JFileChooser jFileChooserSave = new javax.swing.JFileChooser();
            int result = jFileChooserSave.showSaveDialog(null);
            if(result == javax.swing.JFileChooser.APPROVE_OPTION){
                if(jFileChooserSave.getSelectedFile()!=null) {
                    globalFilename = jFileChooserSave.getSelectedFile();
                    //File file = jFileChooserSave.getSelectedFile();
                    saveProfile(globalFilename.getPath());
                }
            }
    }

    /**
     * Call this function to populate the profile.
     */
    private void readjFramesForProfile() {
        profile = new Profile();

        profile.name = jTextFieldUserName.getText();
        profile.major = (String) jComboBoxUpdateMajor.getSelectedItem();

        if(jRadioButtonExte.isSelected())
            profile.degree = EXTE;
        else if(jRadioButtonPost.isSelected())
            profile.degree = POST;
        else
            profile.degree = UNDG;


        readjFrameTime();
        readjFrameInterests();
        ObjArea[] coreArea = db.getCore(profile.major, profile.degree);
        ObjArea[] supportArea = db.getSupport(profile.major, profile.degree);

        for(int i=0;i<supportArea.length;i++)
            profile.setClass(supportArea[i].getCourseid(), "SUPPORT");
        for(int i=0;i<coreArea.length;i++)
            profile.setClass(coreArea[i].getCourseid(), "CORE");
        readjFrameUpdate();
    }

    private void readjFrameTime() {

       if (!(jCheckMon.isSelected())){
            profile.setTime((String)jComboMonS.getSelectedItem(), "Monday Start");
            profile.setTime((String)jComboMonE.getSelectedItem(), "Monday End");
        }
        else
        {
            profile.setTime("No Class", "Monday Start");
            profile.setTime("No Class", "Monday End");
        }
        if (!(jCheckTue.isSelected())){
            profile.setTime((String)jComboTueS.getSelectedItem(), "Tuesday Start");
            profile.setTime((String)jComboTueE.getSelectedItem(), "Tuesday End");
        }
        else
        {
            profile.setTime("No Class", "Tuesday Start");
            profile.setTime("No Class", "Tuesday End");
        }

        if (!(jCheckWed.isSelected())){
            profile.setTime((String)jComboWedS.getSelectedItem(), "Wednesday Start");
            profile.setTime((String)jComboWedE.getSelectedItem(), "Wednesday End");
        }
        else
        {
            profile.setTime("No Class", "Wednesday Start");
            profile.setTime("No Class", "Wednesday End");
        }
        if (!(jCheckThu.isSelected())){
            profile.setTime((String)jComboThuS.getSelectedItem(), "Thursday Start");
            profile.setTime((String)jComboThuE.getSelectedItem(), "Thursday End");
        }
        else
        {
            profile.setTime("No Class", "Thursday Start");
            profile.setTime("No Class", "Thursday End");
        }
        if (!(jCheckFri.isSelected())){
            profile.setTime((String)jComboFriS.getSelectedItem(), "Friday Start");
            profile.setTime((String)jComboFriE.getSelectedItem(), "Friday End");
        }
        else
        {
            profile.setTime("No Class", "Friday Start");
            profile.setTime("No Class", "Friday End");
        }
        if (!(jCheckSat.isSelected())){
            profile.setTime((String)jComboSatS.getSelectedItem(), "Saturday Start");
            profile.setTime((String)jComboSatE.getSelectedItem(), "Saturday End");
        }
        else
        {
            profile.setTime("No Class", "Saturday Start");
            profile.setTime("No Class", "Saturday End");
        }
    }

    private void readjFrameUpdate() {
        profile.name = jTextFieldUserName.getText();
        profile.major = (String) jComboBoxUpdateMajor.getSelectedItem();

        if(jRadioButtonUndg.isSelected())
            profile.degree = UNDG;
        else if(jRadioButtonPost.isSelected())
            profile.degree = POST;
        else
            profile.degree = EXTE;

        setClassesFromJList(jListUpdateCompletedCourses, "COMPLETED");
        if(jTextFieldUserName.getText().compareTo("")!=0 && jTextFieldUserName.getText().compareTo(" ")!=0){
            jLabelWelcome2.setText("Hi "+jTextFieldUserName.getText()+". Please make a selection...");
            jLabelResultName.setText("Welcome "+jTextFieldUserName.getText()+" to your Academic Plan.");
        }
    }

    private void setClassesFromJList(JList jList, String type) {
        String[] classes = getStringArrayFromJList(jList);
        for(int i=0;i<classes.length;i++)
            profile.setClass(classes[i], type);
    }

    private String[] getStringArrayFromJList(JList jList) {
        ListModel listModel;
        int size;

        listModel = jList.getModel();
        size = listModel.getSize();
        String[] retVal = new String[size];
        for(int i=0;i<size;i++) {
            retVal[i] = (String) listModel.getElementAt(i);
        }
        return retVal;
  
    }
    
    private void writeClassesToJList(JList jList, String[] classes) {
        jList.setModel(new DefaultListModel());
        DefaultListModel model = (DefaultListModel) jList.getModel();
        model.removeAllElements();

        for(int i=0;i<classes.length;i++)
            model.addElement(classes[i]);
    }

    private void writeGE2JComboBox(JComboBox jcomboBox, String type) {
        String[] classes = profile.getClassByArea(type);
        if(classes.length>0)
            jcomboBox.getModel().setSelectedItem(classes[0]);
    }
     
    private void readjFrameInterests() {
        setClassesFromJList(jListInterestInterest, "ELECTIVE");

         profile.setClass((String)geClassTitle2ID.get(jComboBoxA1.getSelectedItem()), "GE A1");
        profile.setClass((String)geClassTitle2ID.get(jComboBoxA2.getSelectedItem()), "GE A2");
        profile.setClass((String)geClassTitle2ID.get(jComboBoxA3.getSelectedItem()), "GE A3");

        profile.setClass((String)geClassTitle2ID.get(jComboBoxB1.getSelectedItem()), "GE B1");
        profile.setClass((String)geClassTitle2ID.get(jComboBoxB2.getSelectedItem()), "GE B2");
        profile.setClass((String)geClassTitle2ID.get(jComboBoxB3.getSelectedItem()), "GE B3");
        profile.setClass((String)geClassTitle2ID.get(jComboBoxB4.getSelectedItem()), "GE B4");

        profile.setClass((String)geClassTitle2ID.get(jComboBoxC1.getSelectedItem()), "GE C1");
        profile.setClass((String)geClassTitle2ID.get(jComboBoxC2.getSelectedItem()), "GE C2");
        profile.setClass((String)geClassTitle2ID.get(jComboBoxC3.getSelectedItem()), "GE C3");
        profile.setClass((String)geClassTitle2ID.get(jComboBoxC4.getSelectedItem()), "GE C4");

        profile.setClass((String)geClassTitle2ID.get(jComboBoxD1a.getSelectedItem()), "GE D1a");
        profile.setClass((String)geClassTitle2ID.get(jComboBoxD1b.getSelectedItem()), "GE D1b");
        profile.setClass((String)geClassTitle2ID.get(jComboBoxD2.getSelectedItem()), "GE D2");
        profile.setClass((String)geClassTitle2ID.get(jComboBoxD3.getSelectedItem()), "GE D3");
        profile.setClass((String)geClassTitle2ID.get(jComboBoxD4.getSelectedItem()), "GE D4");

        profile.setClass((String)geClassTitle2ID.get(jComboBoxE.getSelectedItem()), "GE E");
    }

    private void writeProfileToForms() {
        // for the update form
        jTextFieldUserName.setText(profile.name);

        ComboBoxModel cmodel;
        cmodel = jComboBoxUpdateMajor.getModel();
        cmodel.setSelectedItem(profile.major);

        JRadioButton[] buttons = new JRadioButton[3];
        buttons[0] = jRadioButtonUndg;
        buttons[1] = jRadioButtonPost;
        buttons[2] = jRadioButtonExte;
        for(int i=0;i<buttons.length;i++) {
            JRadioButton b = buttons[i];
            if(b.getText().compareTo(profile.degree)==0) {
                ButtonModel model = b.getModel();
                buttonGroupDegree.setSelected(model, true);
                break;
            }
        }

        writeClassesToJList(jListUpdateCompletedCourses, profile.getClassByArea("COMPLETED"));

       // for the interest form

       writeGE2JComboBox(jComboBoxA1, "GE A1");
       writeGE2JComboBox(jComboBoxA1,"GE A1");
       writeGE2JComboBox(jComboBoxA2,"GE A2");
       writeGE2JComboBox(jComboBoxA3,"GE A3");
       writeGE2JComboBox(jComboBoxB1,"GE B1");
       writeGE2JComboBox(jComboBoxB2,"GE B2");
       writeGE2JComboBox(jComboBoxB3,"GE B3");
       writeGE2JComboBox(jComboBoxB4,"GE B4");
       writeGE2JComboBox(jComboBoxC1,"GE C1");
       writeGE2JComboBox(jComboBoxC2,"GE C2");
       writeGE2JComboBox(jComboBoxC3,"GE C3");
       writeGE2JComboBox(jComboBoxC4,"GE C4");
       writeGE2JComboBox(jComboBoxD1a,"GE D1a");
       writeGE2JComboBox(jComboBoxD1b,"GE D1b");
       writeGE2JComboBox(jComboBoxD2,"GE D2");
       writeGE2JComboBox(jComboBoxD3,"GE D3");
       writeGE2JComboBox(jComboBoxD4,"GE D4");
       writeGE2JComboBox(jComboBoxE,"GE E");

       writeClassesToJList(jListInterestInterest, profile.getClassByArea("ELECTIVE"));
      
       // for the time form


       writeGE2JComboBox(jComboMonS,"Monday Start");
       writeGE2JComboBox(jComboMonE,"Monday End");

       String[] temp = profile.getClassByArea("Monday Start");
       if (temp.length>0)
           if (temp[0].matches("No Class"))
           {
               jComboMonS.setSelectedIndex(0);
               jComboMonE.setSelectedIndex(13);
               jCheckMon.setSelected(true);
           }
       
      

       writeGE2JComboBox(jComboTueS,"Tuesday Start");
       writeGE2JComboBox(jComboTueE,"Tuesday End");

        temp = profile.getClassByArea("Tuesday Start");
       if (temp.length>0)
           if (temp[0].matches("No Class"))
           {
                jCheckTue.setSelected(true);
                jComboTueS.setSelectedIndex(0);
                jComboTueE.setSelectedIndex(13);
           }

      
      

       writeGE2JComboBox(jComboWedS,"Wednesday Start");
       writeGE2JComboBox(jComboWedE,"Wednesday End");

        temp = profile.getClassByArea("Wednesday Start");
        if (temp.length>0)
           if (temp[0].matches("No Class"))
           {
                jCheckWed.setSelected(true);
                jComboWedS.setSelectedIndex(0);
               jComboWedE.setSelectedIndex(13);
           }
       
       writeGE2JComboBox(jComboThuS,"Thursday Start");
       writeGE2JComboBox(jComboThuE,"Thursday End");

       temp = profile.getClassByArea("Thursday Start");
       if (temp.length>0)
           if (temp[0].matches("No Class"))
           {
                jCheckThu.setSelected(true);
                jComboThuS.setSelectedIndex(0);
                jComboThuE.setSelectedIndex(13);
           }



       writeGE2JComboBox(jComboFriS,"Friday Start");
       writeGE2JComboBox(jComboFriE,"Friday End");

       temp = profile.getClassByArea("Friday Start");
       if (temp.length>0)
           if (temp[0].matches("No Class"))
           {
                jCheckFri.setSelected(true);
                jComboFriS.setSelectedIndex(0);
                jComboFriE.setSelectedIndex(13);
           }
        



       writeGE2JComboBox(jComboSatS,"Saturday Start");
       writeGE2JComboBox(jComboSatE,"Saturday End");

         temp = profile.getClassByArea("Saturday Start");

       if (temp.length>0)
           if (temp[0].matches("No Class"))
           {
                jCheckSat.setSelected(true);
                jComboSatS.setSelectedIndex(0);
                jComboSatE.setSelectedIndex(9);
           }
    }

    private void saveProfile( String filename ) {
        try {
            IOHelper.saveObject(profile, filename );
        } catch(Exception ex) {
            javax.swing.JOptionPane.showMessageDialog(null, ex);
            return;
        }
        javax.swing.JOptionPane.showMessageDialog(null, "profile saved");
    }

    private void loadProfile( String filename ) {
        try {
            profile = (Profile) IOHelper.loadObject( filename );
            writeProfileToForms();
        } catch(Exception ex) {
            javax.swing.JOptionPane.showMessageDialog(null, "The selected file is invalid or corrupted.");
            return;
        }
    }


    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jFrameStart = new javax.swing.JFrame();
        jPanelStartMessage = new javax.swing.JPanel();
        jLabelWelcome = new javax.swing.JLabel();
        jLabelWelcome1 = new javax.swing.JLabel();
        jPanelStartButtons = new javax.swing.JPanel();
        jButtonStartNew = new javax.swing.JButton();
        jButtonStartLoad = new javax.swing.JButton();
        jMenuBarStart = new javax.swing.JMenuBar();
        jMenuStartFile = new javax.swing.JMenu();
        jMenuItemStartNew = new javax.swing.JMenuItem();
        jMenuItemStartOpen = new javax.swing.JMenuItem();
        jSeparator1 = new javax.swing.JSeparator();
        jMenuItemStartSave = new javax.swing.JMenuItem();
        jMenuItemStartSaveas = new javax.swing.JMenuItem();
        jSeparator2 = new javax.swing.JSeparator();
        jMenuItemStartExit = new javax.swing.JMenuItem();
        jMenuStartView = new javax.swing.JMenu();
        jMenuItemStartWelcome = new javax.swing.JMenuItem();
        jMenuItemStartMode = new javax.swing.JMenuItem();
        jSeparator19 = new javax.swing.JSeparator();
        jMenuItem1 = new javax.swing.JMenuItem();
        jMenuItemQPResults5 = new javax.swing.JMenuItem();
        jMenuItemAPResults5 = new javax.swing.JMenuItem();
        jMenuStartInfo = new javax.swing.JMenu();
        jMenuItemStartHelp = new javax.swing.JMenuItem();
        jMenuItemStartAuthor = new javax.swing.JMenuItem();
        jFrameUpdate = new javax.swing.JFrame();
        jPanel1 = new javax.swing.JPanel();
        jScrollPane1 = new javax.swing.JScrollPane();
        jListUpdateMajorCourseAll = new javax.swing.JList();
        jScrollPane2 = new javax.swing.JScrollPane();
        jListUpdateCompletedCourses = new javax.swing.JList();
        jPanel3 = new javax.swing.JPanel();
        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        jButton3 = new javax.swing.JButton();
        jPanel2 = new javax.swing.JPanel();
        jButtonUpdateNext = new javax.swing.JButton();
        jButton5 = new javax.swing.JButton();
        jPanel4 = new javax.swing.JPanel();
        jPanel7 = new javax.swing.JPanel();
        jRadioButtonUndg = new javax.swing.JRadioButton();
        jRadioButtonPost = new javax.swing.JRadioButton();
        jRadioButtonExte = new javax.swing.JRadioButton();
        jComboBoxUpdateMajor = new javax.swing.JComboBox();
        jLabel1 = new javax.swing.JLabel();
        jTextFieldUserName = new javax.swing.JTextField();
        jMenuBarUpdate = new javax.swing.JMenuBar();
        jMenuUpdateFile = new javax.swing.JMenu();
        jMenuItemUpdateNew = new javax.swing.JMenuItem();
        jMenuItemUpdateOpen = new javax.swing.JMenuItem();
        jSeparator3 = new javax.swing.JSeparator();
        jMenuItemUpdateSave = new javax.swing.JMenuItem();
        jMenuItemUpdateSaveas = new javax.swing.JMenuItem();
        jSeparator4 = new javax.swing.JSeparator();
        jMenuItemUpdateExit = new javax.swing.JMenuItem();
        jMenuStartView1 = new javax.swing.JMenu();
        jMenuItemUpdateWelcome = new javax.swing.JMenuItem();
        jMenuItemUpdateMode = new javax.swing.JMenuItem();
        jSeparator20 = new javax.swing.JSeparator();
        jMenuItem2 = new javax.swing.JMenuItem();
        jMenuItemQPResults6 = new javax.swing.JMenuItem();
        jMenuItemAPResults6 = new javax.swing.JMenuItem();
        jMenuUpdateInfo = new javax.swing.JMenu();
        jMenuItemUpdateHelp = new javax.swing.JMenuItem();
        jMenuItemUpdateAuthor = new javax.swing.JMenuItem();
        buttonGroupDegree = new javax.swing.ButtonGroup();
        jFrameInterests = new javax.swing.JFrame();
        jPanel10 = new javax.swing.JPanel();
        jButtonInterestsNext = new javax.swing.JButton();
        jButton10 = new javax.swing.JButton();
        jPanel1222 = new javax.swing.JPanel();
        jLabel2 = new javax.swing.JLabel();
        jPanel13 = new javax.swing.JPanel();
        jComboBoxA1 = new javax.swing.JComboBox();
        jComboBoxA2 = new javax.swing.JComboBox();
        jComboBoxA3 = new javax.swing.JComboBox();
        jLabel3 = new javax.swing.JLabel();
        jPanel15 = new javax.swing.JPanel();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        jLabel6 = new javax.swing.JLabel();
        jPanel14 = new javax.swing.JPanel();
        jComboBoxB1 = new javax.swing.JComboBox();
        jComboBoxB2 = new javax.swing.JComboBox();
        jComboBoxB3 = new javax.swing.JComboBox();
        jComboBoxB4 = new javax.swing.JComboBox();
        jPanel16 = new javax.swing.JPanel();
        jLabel7 = new javax.swing.JLabel();
        jLabel8 = new javax.swing.JLabel();
        jLabel9 = new javax.swing.JLabel();
        jLabel10 = new javax.swing.JLabel();
        jPanel17 = new javax.swing.JPanel();
        jComboBoxC1 = new javax.swing.JComboBox();
        jComboBoxC2 = new javax.swing.JComboBox();
        jComboBoxC3 = new javax.swing.JComboBox();
        jComboBoxC4 = new javax.swing.JComboBox();
        jPanel18 = new javax.swing.JPanel();
        jLabel12 = new javax.swing.JLabel();
        jLabel13 = new javax.swing.JLabel();
        jLabel14 = new javax.swing.JLabel();
        jLabel15 = new javax.swing.JLabel();
        jLabel11 = new javax.swing.JLabel();
        jPanel20 = new javax.swing.JPanel();
        jLabel17 = new javax.swing.JLabel();
        jLabel18 = new javax.swing.JLabel();
        jLabel19 = new javax.swing.JLabel();
        jLabel20 = new javax.swing.JLabel();
        jLabel21 = new javax.swing.JLabel();
        jPanel19 = new javax.swing.JPanel();
        jComboBoxD1a = new javax.swing.JComboBox();
        jComboBoxD1b = new javax.swing.JComboBox();
        jComboBoxD2 = new javax.swing.JComboBox();
        jComboBoxD3 = new javax.swing.JComboBox();
        jComboBoxD4 = new javax.swing.JComboBox();
        jLabel16 = new javax.swing.JLabel();
        jLabel22 = new javax.swing.JLabel();
        jComboBoxE = new javax.swing.JComboBox();
        jPanel833 = new javax.swing.JPanel();
        jScrollPane3 = new javax.swing.JScrollPane();
        jListInterestElective = new javax.swing.JList();
        jScrollPane4 = new javax.swing.JScrollPane();
        jListInterestInterest = new javax.swing.JList();
        jPanel9 = new javax.swing.JPanel();
        jButtonInterestInsert = new javax.swing.JButton();
        jButtonInterestRemove = new javax.swing.JButton();
        jButtonInterestDesc2 = new javax.swing.JButton();
        jMenuBarInterests = new javax.swing.JMenuBar();
        jMenuInterestsFile = new javax.swing.JMenu();
        jMenuItemInterestsNew = new javax.swing.JMenuItem();
        jMenuItemInterestsOpen = new javax.swing.JMenuItem();
        jSeparator5 = new javax.swing.JSeparator();
        jMenuItemInterestsSave = new javax.swing.JMenuItem();
        jMenuItemInterestsSaveas = new javax.swing.JMenuItem();
        jSeparator6 = new javax.swing.JSeparator();
        jMenuItemInterestsExit = new javax.swing.JMenuItem();
        jMenuStartView2 = new javax.swing.JMenu();
        jMenuItemInterestsWelcome = new javax.swing.JMenuItem();
        jMenuItemInterestsMode = new javax.swing.JMenuItem();
        jSeparator21 = new javax.swing.JSeparator();
        jMenuItem3 = new javax.swing.JMenuItem();
        jMenuItemQPResults7 = new javax.swing.JMenuItem();
        jMenuItemAPResults7 = new javax.swing.JMenuItem();
        jMenuInterestsInfo = new javax.swing.JMenu();
        jMenuItemInterestsHelp = new javax.swing.JMenuItem();
        jMenuItemInterestsAuthor = new javax.swing.JMenuItem();
        jFrameMode = new javax.swing.JFrame();
        jPanelStartMessage1 = new javax.swing.JPanel();
        jLabelWelcome2 = new javax.swing.JLabel();
        jPanelStartButtons1 = new javax.swing.JPanel();
        jButtonModeUpdate = new javax.swing.JButton();
        jButtonModeQuarterly = new javax.swing.JButton();
        jButtonModeAcademic = new javax.swing.JButton();
        jMenuBarMode = new javax.swing.JMenuBar();
        jMenuModeFile = new javax.swing.JMenu();
        jMenuItemModeNew = new javax.swing.JMenuItem();
        jMenuItemModeOpen = new javax.swing.JMenuItem();
        jSeparator7 = new javax.swing.JSeparator();
        jMenuItemModeSave = new javax.swing.JMenuItem();
        jMenuItemModeSaveas = new javax.swing.JMenuItem();
        jSeparator8 = new javax.swing.JSeparator();
        jMenuItemModeExit = new javax.swing.JMenuItem();
        jMenuModeView = new javax.swing.JMenu();
        jMenuItemModeWelcome = new javax.swing.JMenuItem();
        jMenuItemModeMode = new javax.swing.JMenuItem();
        jSeparator16 = new javax.swing.JSeparator();
        jMenuItem4 = new javax.swing.JMenuItem();
        jMenuItemQPResults2 = new javax.swing.JMenuItem();
        jMenuItemAPResults2 = new javax.swing.JMenuItem();
        jMenuModeInfo = new javax.swing.JMenu();
        jMenuItemModeHelp = new javax.swing.JMenuItem();
        jMenuItemModeAuthor = new javax.swing.JMenuItem();
        jFrameTesting = new javax.swing.JFrame();
        jScrollPane25 = new javax.swing.JScrollPane();
        jTextArea2 = new javax.swing.JTextArea();
        jFrameAcademicPlan = new javax.swing.JFrame();
        jLabel23 = new javax.swing.JLabel();
        jScrollPane5 = new javax.swing.JScrollPane();
        jTextArea1 = new javax.swing.JTextArea();
        jButton4 = new javax.swing.JButton();
        jFrameDescription = new javax.swing.JFrame();
        jPanel5 = new javax.swing.JPanel();
        jButtonBookInfo1 = new javax.swing.JButton();
        jLabel24 = new javax.swing.JLabel();
        jPanel21 = new javax.swing.JPanel();
        jLabelDescCourseName = new javax.swing.JLabel();
        jScrollPane6 = new javax.swing.JScrollPane();
        jTextAreaDesc = new javax.swing.JTextArea();
        jFrameTime = new javax.swing.JFrame();
        jPanel23 = new javax.swing.JPanel();
        jButtonTimeNext = new javax.swing.JButton();
        jButton13 = new javax.swing.JButton();
        jPanel22 = new javax.swing.JPanel();
        jPanel24 = new javax.swing.JPanel();
        jLabel25 = new javax.swing.JLabel();
        jLabel32 = new javax.swing.JLabel();
        jLabel26 = new javax.swing.JLabel();
        jLabel27 = new javax.swing.JLabel();
        jLabel28 = new javax.swing.JLabel();
        jCheckMon = new javax.swing.JCheckBox();
        jComboMonS = new javax.swing.JComboBox();
        jComboMonE = new javax.swing.JComboBox();
        jLabel29 = new javax.swing.JLabel();
        jCheckTue = new javax.swing.JCheckBox();
        jComboTueS = new javax.swing.JComboBox();
        jComboTueE = new javax.swing.JComboBox();
        jLabel30 = new javax.swing.JLabel();
        jCheckWed = new javax.swing.JCheckBox();
        jComboWedS = new javax.swing.JComboBox();
        jComboWedE = new javax.swing.JComboBox();
        jLabel31 = new javax.swing.JLabel();
        jCheckThu = new javax.swing.JCheckBox();
        jComboThuS = new javax.swing.JComboBox();
        jComboThuE = new javax.swing.JComboBox();
        jLabel33 = new javax.swing.JLabel();
        jCheckFri = new javax.swing.JCheckBox();
        jComboFriS = new javax.swing.JComboBox();
        jComboFriE = new javax.swing.JComboBox();
        jLabel34 = new javax.swing.JLabel();
        jCheckSat = new javax.swing.JCheckBox();
        jComboSatS = new javax.swing.JComboBox();
        jComboSatE = new javax.swing.JComboBox();
        jLabel35 = new javax.swing.JLabel();
        jPanel25 = new javax.swing.JPanel();
        jComboBox1 = new javax.swing.JComboBox();
        jPanel28 = new javax.swing.JPanel();
        jScrollPane10 = new javax.swing.JScrollPane();
        jListTimeCourses = new javax.swing.JList();
        jScrollPane11 = new javax.swing.JScrollPane();
        jListTimePlan = new javax.swing.JList();
        jPanel29 = new javax.swing.JPanel();
        jButtonTimeInsert = new javax.swing.JButton();
        jButtonTimeRemove = new javax.swing.JButton();
        jButtonTimeDesc = new javax.swing.JButton();
        jPanel30 = new javax.swing.JPanel();
        jButtonTimeRankUp = new javax.swing.JButton();
        jButtonTimeRankDown = new javax.swing.JButton();
        jLabel36 = new javax.swing.JLabel();
        jMenuBarStart4 = new javax.swing.JMenuBar();
        jMenuStartFile4 = new javax.swing.JMenu();
        jMenuItemStartNew4 = new javax.swing.JMenuItem();
        jMenuItemStartOpen4 = new javax.swing.JMenuItem();
        jSeparator9 = new javax.swing.JSeparator();
        jMenuItemStartSave4 = new javax.swing.JMenuItem();
        jMenuItemStartSaveas4 = new javax.swing.JMenuItem();
        jSeparator10 = new javax.swing.JSeparator();
        jMenuItemStartExit4 = new javax.swing.JMenuItem();
        jMenuStartView4 = new javax.swing.JMenu();
        jMenuItemStartWelcome4 = new javax.swing.JMenuItem();
        jMenuItemStartMode4 = new javax.swing.JMenuItem();
        jSeparator22 = new javax.swing.JSeparator();
        jMenuItem5 = new javax.swing.JMenuItem();
        jMenuItemQPResults8 = new javax.swing.JMenuItem();
        jMenuItemAPResults8 = new javax.swing.JMenuItem();
        jMenuStartInfo4 = new javax.swing.JMenu();
        jMenuItemStartHelp4 = new javax.swing.JMenuItem();
        jMenuItemStartAuthor4 = new javax.swing.JMenuItem();
        jFrameQuarterlyPlan = new javax.swing.JFrame();
        jPanel26 = new javax.swing.JPanel();
        jButtonQuarterlyPlanNext = new javax.swing.JButton();
        jButton14 = new javax.swing.JButton();
        jPanel27 = new javax.swing.JPanel();
        jLabel47 = new javax.swing.JLabel();
        jScrollPane7 = new javax.swing.JScrollPane();
        jTableQuarterly1 = new javax.swing.JTable();
        jLabel37 = new javax.swing.JLabel();
        jLabel38 = new javax.swing.JLabel();
        jScrollPane8 = new javax.swing.JScrollPane();
        jTableQuarterly2 = new javax.swing.JTable();
        jLabel39 = new javax.swing.JLabel();
        jScrollPane9 = new javax.swing.JScrollPane();
        jTableQuarterly3 = new javax.swing.JTable();
        jMenuBarStart5 = new javax.swing.JMenuBar();
        jMenuStartFile5 = new javax.swing.JMenu();
        jMenuItemStartNew5 = new javax.swing.JMenuItem();
        jMenuItemStartOpen5 = new javax.swing.JMenuItem();
        jSeparator11 = new javax.swing.JSeparator();
        jMenuItemStartSave5 = new javax.swing.JMenuItem();
        jMenuItemStartSaveas5 = new javax.swing.JMenuItem();
        jSeparator12 = new javax.swing.JSeparator();
        jMenuItemStartExit5 = new javax.swing.JMenuItem();
        jMenuStartView5 = new javax.swing.JMenu();
        jMenuItemStartWelcome5 = new javax.swing.JMenuItem();
        jMenuItemStartMode5 = new javax.swing.JMenuItem();
        jSeparator17 = new javax.swing.JSeparator();
        jMenuItem6 = new javax.swing.JMenuItem();
        jMenuItemQPResults3 = new javax.swing.JMenuItem();
        jMenuItemAPResults3 = new javax.swing.JMenuItem();
        jMenuStartInfo5 = new javax.swing.JMenu();
        jMenuItemStartHelp5 = new javax.swing.JMenuItem();
        jMenuItemStartAuthor5 = new javax.swing.JMenuItem();
        jFrameAcademicResults = new javax.swing.JFrame();
        jPanel12 = new javax.swing.JPanel();
        jButtonAcdemicResultsFinish = new javax.swing.JButton();
        jButtonAcademicResiltsBack = new javax.swing.JButton();
        jPanel8 = new javax.swing.JPanel();
        jScrollPane12 = new javax.swing.JScrollPane();
        jTableRow1Col1 = new javax.swing.JTable();
        jScrollPane13 = new javax.swing.JScrollPane();
        jTableRow1Col2 = new javax.swing.JTable();
        jScrollPane14 = new javax.swing.JScrollPane();
        jTableRow1Col3 = new javax.swing.JTable();
        jScrollPane15 = new javax.swing.JScrollPane();
        jTableRow2Col1 = new javax.swing.JTable();
        jScrollPane16 = new javax.swing.JScrollPane();
        jTableRow2Col2 = new javax.swing.JTable();
        jScrollPane17 = new javax.swing.JScrollPane();
        jTableRow2Col3 = new javax.swing.JTable();
        jScrollPane18 = new javax.swing.JScrollPane();
        jTableRow3Col1 = new javax.swing.JTable();
        jScrollPane19 = new javax.swing.JScrollPane();
        jTableRow3Col2 = new javax.swing.JTable();
        jScrollPane20 = new javax.swing.JScrollPane();
        jTableRow3Col3 = new javax.swing.JTable();
        jScrollPane21 = new javax.swing.JScrollPane();
        jTableRow4Col1 = new javax.swing.JTable();
        jScrollPane22 = new javax.swing.JScrollPane();
        jTableRow4Col2 = new javax.swing.JTable();
        jScrollPane23 = new javax.swing.JScrollPane();
        jTableRow4Col3 = new javax.swing.JTable();
        jLabelResultName = new javax.swing.JLabel();
        jMenuBarStart6 = new javax.swing.JMenuBar();
        jMenuStartFile6 = new javax.swing.JMenu();
        jMenuItemStartNew6 = new javax.swing.JMenuItem();
        jMenuItemStartOpen6 = new javax.swing.JMenuItem();
        jSeparator13 = new javax.swing.JSeparator();
        jMenuItemStartSave6 = new javax.swing.JMenuItem();
        jMenuItemStartSaveas6 = new javax.swing.JMenuItem();
        jSeparator14 = new javax.swing.JSeparator();
        jMenuItemStartExit6 = new javax.swing.JMenuItem();
        jMenuStartView6 = new javax.swing.JMenu();
        jMenuItemStartWelcome6 = new javax.swing.JMenuItem();
        jMenuItemStartMode6 = new javax.swing.JMenuItem();
        jSeparator18 = new javax.swing.JSeparator();
        jMenuItem7 = new javax.swing.JMenuItem();
        jMenuItemQPResults4 = new javax.swing.JMenuItem();
        jMenuItemAPResults4 = new javax.swing.JMenuItem();
        jMenuStartInfo6 = new javax.swing.JMenu();
        jMenuItemStartHelp6 = new javax.swing.JMenuItem();
        jMenuItemStartAuthor6 = new javax.swing.JMenuItem();
        jPopupMenuPrint = new javax.swing.JPopupMenu();
        jMenuItemPrint = new javax.swing.JMenuItem();
        jFrameHelp = new javax.swing.JFrame();
        jScrollPane26 = new javax.swing.JScrollPane();
        jEditorPane1 = new javax.swing.JEditorPane();
        jPanel6 = new javax.swing.JPanel();
        jScrollPane24 = new javax.swing.JScrollPane();
        jListClear = new javax.swing.JList();

        jFrameStart.setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        jFrameStart.setTitle(TITLE+" (Welcome Menu)");
        jFrameStart.setMinimumSize(new java.awt.Dimension(600, 420));
        jFrameStart.setName("frameStart"); // NOI18N
        jFrameStart.setResizable(false);

        jLabelWelcome.setFont(new java.awt.Font("Times New Roman", 3, 36));
        jLabelWelcome.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabelWelcome.setText("Welcome to");

        jLabelWelcome1.setFont(new java.awt.Font("Times New Roman", 3, 36));
        jLabelWelcome1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabelWelcome1.setText("Class Auto-Planner");

        javax.swing.GroupLayout jPanelStartMessageLayout = new javax.swing.GroupLayout(jPanelStartMessage);
        jPanelStartMessage.setLayout(jPanelStartMessageLayout);
        jPanelStartMessageLayout.setHorizontalGroup(
            jPanelStartMessageLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanelStartMessageLayout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(jLabelWelcome, javax.swing.GroupLayout.PREFERRED_SIZE, 540, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
            .addGroup(jPanelStartMessageLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabelWelcome1, javax.swing.GroupLayout.PREFERRED_SIZE, 540, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        jPanelStartMessageLayout.setVerticalGroup(
            jPanelStartMessageLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelStartMessageLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabelWelcome)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabelWelcome1)
                .addContainerGap())
        );

        jPanelStartButtons.setLayout(new java.awt.GridLayout(1, 2, 10, 0));

        jButtonStartNew.setFont(new java.awt.Font("Tahoma", 0, 18));
        jButtonStartNew.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/wizard_hat.png"))); // NOI18N
        jButtonStartNew.setText("New User");
        jButtonStartNew.setToolTipText("All New Users.");
        jButtonStartNew.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        jButtonStartNew.setVerticalAlignment(javax.swing.SwingConstants.BOTTOM);
        jButtonStartNew.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jButtonStartNew.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonStartNewActionPerformed(evt);
            }
        });
        jPanelStartButtons.add(jButtonStartNew);

        jButtonStartLoad.setFont(new java.awt.Font("Tahoma", 0, 18));
        jButtonStartLoad.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/man_smile.png"))); // NOI18N
        jButtonStartLoad.setText("Open/Load Profile");
        jButtonStartLoad.setToolTipText("Pervious Users with Saved Profiles.");
        jButtonStartLoad.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        jButtonStartLoad.setMaximumSize(new java.awt.Dimension(107, 31));
        jButtonStartLoad.setMinimumSize(new java.awt.Dimension(107, 31));
        jButtonStartLoad.setPreferredSize(new java.awt.Dimension(107, 31));
        jButtonStartLoad.setVerticalAlignment(javax.swing.SwingConstants.BOTTOM);
        jButtonStartLoad.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jButtonStartLoad.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonStartLoadActionPerformed(evt);
            }
        });
        jPanelStartButtons.add(jButtonStartLoad);

        jMenuStartFile.setMnemonic('F');
        jMenuStartFile.setText("File   ");

        jMenuItemStartNew.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_N, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemStartNew.setMnemonic('N');
        jMenuItemStartNew.setText("New");
        jMenuItemStartNew.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemStartNewActionPerformed(evt);
            }
        });
        jMenuStartFile.add(jMenuItemStartNew);

        jMenuItemStartOpen.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemStartOpen.setMnemonic('O');
        jMenuItemStartOpen.setText("Open");
        jMenuItemStartOpen.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemStartOpenActionPerformed(evt);
            }
        });
        jMenuStartFile.add(jMenuItemStartOpen);
        jMenuStartFile.add(jSeparator1);

        jMenuItemStartSave.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemStartSave.setMnemonic('S');
        jMenuItemStartSave.setText("Save");
        jMenuItemStartSave.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemStartSaveActionPerformed(evt);
            }
        });
        jMenuStartFile.add(jMenuItemStartSave);

        jMenuItemStartSaveas.setText("Save As");
        jMenuItemStartSaveas.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemStartSaveasActionPerformed(evt);
            }
        });
        jMenuStartFile.add(jMenuItemStartSaveas);
        jMenuStartFile.add(jSeparator2);

        jMenuItemStartExit.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_X, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemStartExit.setMnemonic('x');
        jMenuItemStartExit.setText("Exit");
        jMenuItemStartExit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemStartExitActionPerformed(evt);
            }
        });
        jMenuStartFile.add(jMenuItemStartExit);

        jMenuBarStart.add(jMenuStartFile);

        jMenuStartView.setMnemonic('m');
        jMenuStartView.setText("Menu   ");

        jMenuItemStartWelcome.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_W, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemStartWelcome.setMnemonic('w');
        jMenuItemStartWelcome.setText("Welcome Menu");
        jMenuItemStartWelcome.setEnabled(false);
        jMenuItemStartWelcome.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemStartWelcomeActionPerformed(evt);
            }
        });
        jMenuStartView.add(jMenuItemStartWelcome);

        jMenuItemStartMode.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_M, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemStartMode.setMnemonic('m');
        jMenuItemStartMode.setText("Mode Menu");
        jMenuItemStartMode.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemStartModeActionPerformed(evt);
            }
        });
        jMenuStartView.add(jMenuItemStartMode);
        jMenuStartView.add(jSeparator19);

        jMenuItem1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_U, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem1.setMnemonic('u');
        jMenuItem1.setText("Profile Menu");
        jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem1ActionPerformed(evt);
            }
        });
        jMenuStartView.add(jMenuItem1);

        jMenuItemQPResults5.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_Q, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemQPResults5.setMnemonic('q');
        jMenuItemQPResults5.setText("Quaterly Plan Menu");
        jMenuItemQPResults5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemQPResults5ActionPerformed(evt);
            }
        });
        jMenuStartView.add(jMenuItemQPResults5);

        jMenuItemAPResults5.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_A, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemAPResults5.setMnemonic('a');
        jMenuItemAPResults5.setText("Academic Plan Menu");
        jMenuItemAPResults5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemAPResults5ActionPerformed(evt);
            }
        });
        jMenuStartView.add(jMenuItemAPResults5);

        jMenuBarStart.add(jMenuStartView);

        jMenuStartInfo.setMnemonic('h');
        jMenuStartInfo.setText("Help");

        jMenuItemStartHelp.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F1, 0));
        jMenuItemStartHelp.setText("Help");
        jMenuItemStartHelp.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemStartHelpActionPerformed(evt);
            }
        });
        jMenuStartInfo.add(jMenuItemStartHelp);

        jMenuItemStartAuthor.setMnemonic('a');
        jMenuItemStartAuthor.setText("About");
        jMenuItemStartAuthor.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemStartAuthorActionPerformed(evt);
            }
        });
        jMenuStartInfo.add(jMenuItemStartAuthor);

        jMenuBarStart.add(jMenuStartInfo);

        jFrameStart.setJMenuBar(jMenuBarStart);

        javax.swing.GroupLayout jFrameStartLayout = new javax.swing.GroupLayout(jFrameStart.getContentPane());
        jFrameStart.getContentPane().setLayout(jFrameStartLayout);
        jFrameStartLayout.setHorizontalGroup(
            jFrameStartLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jFrameStartLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jFrameStartLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jPanelStartMessage, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jPanelStartButtons, javax.swing.GroupLayout.DEFAULT_SIZE, 564, Short.MAX_VALUE))
                .addContainerGap())
        );
        jFrameStartLayout.setVerticalGroup(
            jFrameStartLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jFrameStartLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanelStartMessage, javax.swing.GroupLayout.PREFERRED_SIZE, 106, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jPanelStartButtons, javax.swing.GroupLayout.DEFAULT_SIZE, 215, Short.MAX_VALUE)
                .addContainerGap())
        );

        jFrameUpdate.setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        jFrameUpdate.setTitle(TITLE+" (Profile Menu) ");
        jFrameUpdate.setMinimumSize(new java.awt.Dimension(1004, 748));
        jFrameUpdate.setResizable(false);

        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Please select the courses you have completed...", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Times New Roman", 1, 18))); // NOI18N

        jListUpdateMajorCourseAll.setFont(new java.awt.Font("Tahoma", 0, 15));
        jListUpdateMajorCourseAll.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
        jListUpdateMajorCourseAll.setToolTipText("Entire Course List Based on Selected Major and Degree.");
        jListUpdateMajorCourseAll.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
            public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
                jListUpdateMajorCourseAllValueChanged(evt);
            }
        });
        jListUpdateMajorCourseAll.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusGained(java.awt.event.FocusEvent evt) {
                jListUpdateMajorCourseAllFocusGained(evt);
            }
            public void focusLost(java.awt.event.FocusEvent evt) {
                jListUpdateMajorCourseAllFocusLost(evt);
            }
        });
        jListUpdateMajorCourseAll.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
            public void propertyChange(java.beans.PropertyChangeEvent evt) {
                jListUpdateMajorCourseAllPropertyChange(evt);
            }
        });
        jScrollPane1.setViewportView(jListUpdateMajorCourseAll);

        jListUpdateCompletedCourses.setBorder(javax.swing.BorderFactory.createTitledBorder("Completed"));
        jListUpdateCompletedCourses.setFont(new java.awt.Font("Tahoma", 0, 15));
        jListUpdateCompletedCourses.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
        jListUpdateCompletedCourses.setToolTipText("List of Courses You Have Completed (passed).");
        jListUpdateCompletedCourses.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
            public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
                jListUpdateCompletedCoursesValueChanged(evt);
            }
        });
        jListUpdateCompletedCourses.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusGained(java.awt.event.FocusEvent evt) {
                jListUpdateCompletedCoursesFocusGained(evt);
            }
            public void focusLost(java.awt.event.FocusEvent evt) {
                jListUpdateCompletedCoursesFocusLost(evt);
            }
        });
        jScrollPane2.setViewportView(jListUpdateCompletedCourses);

        jPanel3.setLayout(new java.awt.GridLayout(3, 0, 10, 10));

        jButton1.setFont(new java.awt.Font("Tahoma", 0, 24));
        jButton1.setText(">>");
        jButton1.setToolTipText("Add Course");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });
        jPanel3.add(jButton1);

        jButton2.setFont(new java.awt.Font("Tahoma", 0, 24));
        jButton2.setText("<<");
        jButton2.setToolTipText("Remove Course");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });
        jPanel3.add(jButton2);

        jButton3.setFont(new java.awt.Font("Tahoma", 0, 18));
        jButton3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/magnifying.png"))); // NOI18N
        jButton3.setToolTipText("Course Description");
        jButton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton3ActionPerformed(evt);
            }
        });
        jPanel3.add(jButton3);

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 512, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, 133, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 267, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 376, Short.MAX_VALUE)
                    .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, 183, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 376, Short.MAX_VALUE))
                .addContainerGap())
        );

        jButtonUpdateNext.setFont(new java.awt.Font("Times New Roman", 3, 14));
        jButtonUpdateNext.setForeground(new java.awt.Color(255, 0, 0));
        jButtonUpdateNext.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/next_blue_1.png"))); // NOI18N
        jButtonUpdateNext.setToolTipText("Mode Selection Menu.");
        jButtonUpdateNext.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        jButtonUpdateNext.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonUpdateNextActionPerformed(evt);
            }
        });

        jButton5.setFont(new java.awt.Font("Times New Roman", 3, 14));
        jButton5.setForeground(new java.awt.Color(255, 0, 0));
        jButton5.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/back_blue_1.png"))); // NOI18N
        jButton5.setToolTipText("Welcome Menu.");
        jButton5.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        jButton5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton5ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jButton5, javax.swing.GroupLayout.PREFERRED_SIZE, 103, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 747, Short.MAX_VALUE)
                .addComponent(jButtonUpdateNext, javax.swing.GroupLayout.PREFERRED_SIZE, 103, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButtonUpdateNext, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jButton5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );

        jPanel7.setLayout(new java.awt.GridLayout(3, 0, 0, 5));

        buttonGroupDegree.add(jRadioButtonUndg);
        jRadioButtonUndg.setFont(new java.awt.Font("Tahoma", 0, 18));
        jRadioButtonUndg.setSelected(true);
        jRadioButtonUndg.setText("   Undergraduate");
        jRadioButtonUndg.setToolTipText("Your Current Degree");
        jPanel7.add(jRadioButtonUndg);

        buttonGroupDegree.add(jRadioButtonPost);
        jRadioButtonPost.setFont(new java.awt.Font("Tahoma", 0, 18));
        jRadioButtonPost.setText("   Postbaccalareate");
        jRadioButtonPost.setToolTipText("Your Current Degree");
        jRadioButtonPost.setEnabled(false);
        jPanel7.add(jRadioButtonPost);

        buttonGroupDegree.add(jRadioButtonExte);
        jRadioButtonExte.setFont(new java.awt.Font("Tahoma", 0, 18));
        jRadioButtonExte.setText("   Extended Education");
        jRadioButtonExte.setToolTipText("Your Current Degree");
        jRadioButtonExte.setEnabled(false);
        jPanel7.add(jRadioButtonExte);

        jComboBoxUpdateMajor.setFont(new java.awt.Font("Tahoma", 0, 18));
        jComboBoxUpdateMajor.setToolTipText("Select Major");
        jComboBoxUpdateMajor.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                jComboBoxUpdateMajorItemStateChanged(evt);
            }
        });
        jComboBoxUpdateMajor.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jComboBoxUpdateMajorActionPerformed(evt);
            }
        });
        jComboBoxUpdateMajor.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
            public void propertyChange(java.beans.PropertyChangeEvent evt) {
                jComboBoxUpdateMajorPropertyChange(evt);
            }
        });

        jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/grade_smile.png"))); // NOI18N

        jTextFieldUserName.setFont(new java.awt.Font("Tahoma", 0, 18));
        jTextFieldUserName.setToolTipText("Enter Your Name");
        jTextFieldUserName.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Name", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 0, 12))); // NOI18N

        javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
        jPanel4.setLayout(jPanel4Layout);
        jPanel4Layout.setHorizontalGroup(
            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel4Layout.createSequentialGroup()
                .addGap(45, 45, 45)
                .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(jTextFieldUserName)
                    .addComponent(jComboBoxUpdateMajor, 0, 358, Short.MAX_VALUE))
                .addGap(128, 128, 128)
                .addComponent(jPanel7, javax.swing.GroupLayout.PREFERRED_SIZE, 310, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 104, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );
        jPanel4Layout.setVerticalGroup(
            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup()
                .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jPanel7, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel4Layout.createSequentialGroup()
                        .addComponent(jTextFieldUserName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jComboBoxUpdateMajor, javax.swing.GroupLayout.PREFERRED_SIZE, 37, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(jLabel1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 103, Short.MAX_VALUE))
                .addContainerGap())
        );

        jMenuUpdateFile.setMnemonic('F');
        jMenuUpdateFile.setText("File   ");

        jMenuItemUpdateNew.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_N, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemUpdateNew.setMnemonic('N');
        jMenuItemUpdateNew.setText("New");
        jMenuItemUpdateNew.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemUpdateNewActionPerformed(evt);
            }
        });
        jMenuUpdateFile.add(jMenuItemUpdateNew);

        jMenuItemUpdateOpen.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemUpdateOpen.setMnemonic('O');
        jMenuItemUpdateOpen.setText("Open");
        jMenuItemUpdateOpen.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemUpdateOpenActionPerformed(evt);
            }
        });
        jMenuUpdateFile.add(jMenuItemUpdateOpen);
        jMenuUpdateFile.add(jSeparator3);

        jMenuItemUpdateSave.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemUpdateSave.setMnemonic('S');
        jMenuItemUpdateSave.setText("Save");
        jMenuItemUpdateSave.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemUpdateSaveActionPerformed(evt);
            }
        });
        jMenuUpdateFile.add(jMenuItemUpdateSave);

        jMenuItemUpdateSaveas.setText("Save As");
        jMenuItemUpdateSaveas.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemUpdateSaveasActionPerformed(evt);
            }
        });
        jMenuUpdateFile.add(jMenuItemUpdateSaveas);
        jMenuUpdateFile.add(jSeparator4);

        jMenuItemUpdateExit.setMnemonic('x');
        jMenuItemUpdateExit.setText("Exit");
        jMenuItemUpdateExit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemUpdateExitActionPerformed(evt);
            }
        });
        jMenuUpdateFile.add(jMenuItemUpdateExit);

        jMenuBarUpdate.add(jMenuUpdateFile);

        jMenuStartView1.setMnemonic('m');
        jMenuStartView1.setText("Menu   ");

        jMenuItemUpdateWelcome.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_W, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemUpdateWelcome.setMnemonic('w');
        jMenuItemUpdateWelcome.setText("Welcome Menu");
        jMenuItemUpdateWelcome.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemUpdateWelcomeActionPerformed(evt);
            }
        });
        jMenuStartView1.add(jMenuItemUpdateWelcome);

        jMenuItemUpdateMode.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_M, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemUpdateMode.setMnemonic('m');
        jMenuItemUpdateMode.setText("Mode Menu");
        jMenuItemUpdateMode.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemUpdateModeActionPerformed(evt);
            }
        });
        jMenuStartView1.add(jMenuItemUpdateMode);
        jMenuStartView1.add(jSeparator20);

        jMenuItem2.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_U, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem2.setMnemonic('u');
        jMenuItem2.setText("Profile Menu");
        jMenuItem2.setEnabled(false);
        jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem2ActionPerformed(evt);
            }
        });
        jMenuStartView1.add(jMenuItem2);

        jMenuItemQPResults6.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_Q, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemQPResults6.setMnemonic('q');
        jMenuItemQPResults6.setText("Quaterly Plan Menu");
        jMenuItemQPResults6.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemQPResults6ActionPerformed(evt);
            }
        });
        jMenuStartView1.add(jMenuItemQPResults6);

        jMenuItemAPResults6.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_A, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemAPResults6.setMnemonic('a');
        jMenuItemAPResults6.setText("Academic Plan Menu");
        jMenuItemAPResults6.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemAPResults6ActionPerformed(evt);
            }
        });
        jMenuStartView1.add(jMenuItemAPResults6);

        jMenuBarUpdate.add(jMenuStartView1);

        jMenuUpdateInfo.setMnemonic('h');
        jMenuUpdateInfo.setText("Help");

        jMenuItemUpdateHelp.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F1, 0));
        jMenuItemUpdateHelp.setText("Help");
        jMenuItemUpdateHelp.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemUpdateHelpActionPerformed(evt);
            }
        });
        jMenuUpdateInfo.add(jMenuItemUpdateHelp);

        jMenuItemUpdateAuthor.setMnemonic('a');
        jMenuItemUpdateAuthor.setText("About");
        jMenuItemUpdateAuthor.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemUpdateAuthorActionPerformed(evt);
            }
        });
        jMenuUpdateInfo.add(jMenuItemUpdateAuthor);

        jMenuBarUpdate.add(jMenuUpdateInfo);

        jFrameUpdate.setJMenuBar(jMenuBarUpdate);

        javax.swing.GroupLayout jFrameUpdateLayout = new javax.swing.GroupLayout(jFrameUpdate.getContentPane());
        jFrameUpdate.getContentPane().setLayout(jFrameUpdateLayout);
        jFrameUpdateLayout.setHorizontalGroup(
            jFrameUpdateLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jFrameUpdateLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jFrameUpdateLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, 977, Short.MAX_VALUE))
                .addContainerGap())
        );
        jFrameUpdateLayout.setVerticalGroup(
            jFrameUpdateLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jFrameUpdateLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );

        jFrameInterests.setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        jFrameInterests.setTitle(TITLE+" (Academic Plan Menu) ");
        jFrameInterests.setMinimumSize(new java.awt.Dimension(1004, 780));
        jFrameInterests.setResizable(false);

        jButtonInterestsNext.setFont(new java.awt.Font("Tahoma", 3, 14));
        jButtonInterestsNext.setForeground(new java.awt.Color(255, 0, 0));
        jButtonInterestsNext.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/next_blue_1.png"))); // NOI18N
        jButtonInterestsNext.setToolTipText("Generate Academic Schedule.");
        jButtonInterestsNext.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        jButtonInterestsNext.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonInterestsNextActionPerformed(evt);
            }
        });

        jButton10.setFont(new java.awt.Font("Times New Roman", 3, 14));
        jButton10.setForeground(new java.awt.Color(255, 0, 0));
        jButton10.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/back_blue_1.png"))); // NOI18N
        jButton10.setToolTipText("Mode Selection Menu.");
        jButton10.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        jButton10.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton10ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel10Layout = new javax.swing.GroupLayout(jPanel10);
        jPanel10.setLayout(jPanel10Layout);
        jPanel10Layout.setHorizontalGroup(
            jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel10Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jButton10, javax.swing.GroupLayout.PREFERRED_SIZE, 103, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 747, Short.MAX_VALUE)
                .addComponent(jButtonInterestsNext, javax.swing.GroupLayout.PREFERRED_SIZE, 103, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );
        jPanel10Layout.setVerticalGroup(
            jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel10Layout.createSequentialGroup()
                .addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButton10, javax.swing.GroupLayout.DEFAULT_SIZE, 69, Short.MAX_VALUE)
                    .addComponent(jButtonInterestsNext, javax.swing.GroupLayout.PREFERRED_SIZE, 69, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap())
        );

        jPanel1222.setToolTipText("General Education Courses.");

        jLabel2.setText("Area A: Communication & Critical Thinking");

        jPanel13.setLayout(new java.awt.GridLayout(3, 1, 0, 1));

        jComboBoxA1.setFont(new java.awt.Font("Tahoma", 0, 15));
        jPanel13.add(jComboBoxA1);

        jComboBoxA2.setFont(new java.awt.Font("Tahoma", 0, 15));
        jComboBoxA2.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Oral Communication", "Item 2", "Item 3", "Item 4" }));
        jPanel13.add(jComboBoxA2);

        jComboBoxA3.setFont(new java.awt.Font("Tahoma", 0, 15));
        jComboBoxA3.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Critical Thinking", "Item 2", "Item 3", "Item 4" }));
        jPanel13.add(jComboBoxA3);

        jLabel3.setText("Area B: Mathematics & Natural Sciences");

        jPanel15.setLayout(new java.awt.GridLayout(3, 1, 0, 1));

        jLabel4.setFont(new java.awt.Font("Tahoma", 0, 15));
        jLabel4.setText("1.");
        jPanel15.add(jLabel4);

        jLabel5.setFont(new java.awt.Font("Tahoma", 0, 15));
        jLabel5.setText("2.");
        jPanel15.add(jLabel5);

        jLabel6.setFont(new java.awt.Font("Tahoma", 0, 15));
        jLabel6.setText("3.");
        jPanel15.add(jLabel6);

        jPanel14.setLayout(new java.awt.GridLayout(4, 1, 0, 1));

        jComboBoxB1.setFont(new java.awt.Font("Tahoma", 0, 15));
        jComboBoxB1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Math/Quantitive Reasoning", "Item 2", "Item 3", "Item 4" }));
        jPanel14.add(jComboBoxB1);

        jComboBoxB2.setFont(new java.awt.Font("Tahoma", 0, 15));
        jComboBoxB2.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Physical Science", "Item 2", "Item 3", "Item 4" }));
        jPanel14.add(jComboBoxB2);

        jComboBoxB3.setFont(new java.awt.Font("Tahoma", 0, 15));
        jPanel14.add(jComboBoxB3);

        jComboBoxB4.setFont(new java.awt.Font("Tahoma", 0, 15));
        jPanel14.add(jComboBoxB4);

        jPanel16.setLayout(new java.awt.GridLayout(4, 1, 0, 1));

        jLabel7.setFont(new java.awt.Font("Tahoma", 0, 15));
        jLabel7.setText("1.");
        jPanel16.add(jLabel7);

        jLabel8.setFont(new java.awt.Font("Tahoma", 0, 15));
        jLabel8.setText("2.");
        jPanel16.add(jLabel8);

        jLabel9.setFont(new java.awt.Font("Tahoma", 0, 15));
        jLabel9.setText("3.");
        jPanel16.add(jLabel9);

        jLabel10.setFont(new java.awt.Font("Tahoma", 0, 15));
        jLabel10.setText("4.");
        jPanel16.add(jLabel10);

        jPanel17.setLayout(new java.awt.GridLayout(4, 1, 0, 1));

        jComboBoxC1.setFont(new java.awt.Font("Tahoma", 0, 15));
        jPanel17.add(jComboBoxC1);

        jComboBoxC2.setFont(new java.awt.Font("Tahoma", 0, 15));
        jPanel17.add(jComboBoxC2);

        jComboBoxC3.setFont(new java.awt.Font("Tahoma", 0, 15));
        jPanel17.add(jComboBoxC3);

        jComboBoxC4.setFont(new java.awt.Font("Tahoma", 0, 15));
        jPanel17.add(jComboBoxC4);

        jPanel18.setLayout(new java.awt.GridLayout(4, 1, 0, 1));

        jLabel12.setFont(new java.awt.Font("Tahoma", 0, 15));
        jLabel12.setText("1.");
        jPanel18.add(jLabel12);

        jLabel13.setFont(new java.awt.Font("Tahoma", 0, 15));
        jLabel13.setText("2.");
        jPanel18.add(jLabel13);

        jLabel14.setFont(new java.awt.Font("Tahoma", 0, 15));
        jLabel14.setText("3.");
        jPanel18.add(jLabel14);

        jLabel15.setFont(new java.awt.Font("Tahoma", 0, 15));
        jLabel15.setText("4.");
        jPanel18.add(jLabel15);

        jLabel11.setText("Area C: Humanities");

        jPanel20.setLayout(new java.awt.GridLayout(5, 1, 0, 1));

        jLabel17.setFont(new java.awt.Font("Tahoma", 0, 15));
        jLabel17.setText("1a.");
        jPanel20.add(jLabel17);

        jLabel18.setFont(new java.awt.Font("Tahoma", 0, 15));
        jLabel18.setText("1b.");
        jPanel20.add(jLabel18);

        jLabel19.setFont(new java.awt.Font("Tahoma", 0, 15));
        jLabel19.setText("2.");
        jPanel20.add(jLabel19);

        jLabel20.setFont(new java.awt.Font("Tahoma", 0, 15));
        jLabel20.setText("3.");
        jPanel20.add(jLabel20);

        jLabel21.setFont(new java.awt.Font("Tahoma", 0, 15));
        jLabel21.setText("4.");
        jPanel20.add(jLabel21);

        jPanel19.setLayout(new java.awt.GridLayout(5, 1, 0, 1));

        jComboBoxD1a.setFont(new java.awt.Font("Tahoma", 0, 15));
        jPanel19.add(jComboBoxD1a);

        jComboBoxD1b.setFont(new java.awt.Font("Tahoma", 0, 15));
        jPanel19.add(jComboBoxD1b);

        jComboBoxD2.setFont(new java.awt.Font("Tahoma", 0, 15));
        jPanel19.add(jComboBoxD2);

        jComboBoxD3.setFont(new java.awt.Font("Tahoma", 0, 15));
        jComboBoxD3.setMaximumRowCount(7);
        jPanel19.add(jComboBoxD3);

        jComboBoxD4.setFont(new java.awt.Font("Tahoma", 0, 15));
        jComboBoxD4.setMaximumRowCount(6);
        jPanel19.add(jComboBoxD4);

        jLabel16.setText("Area D: Social Sciences");

        jLabel22.setText("Area E: Lifelong Understanging & Self Development");

        jComboBoxE.setFont(new java.awt.Font("Tahoma", 0, 15));
        jComboBoxE.setMaximumRowCount(5);

        javax.swing.GroupLayout jPanel1222Layout = new javax.swing.GroupLayout(jPanel1222);
        jPanel1222.setLayout(jPanel1222Layout);
        jPanel1222Layout.setHorizontalGroup(
            jPanel1222Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1222Layout.createSequentialGroup()
                .addGroup(jPanel1222Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(jPanel1222Layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jComboBoxE, javax.swing.GroupLayout.PREFERRED_SIZE, 330, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1222Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(jPanel1222Layout.createSequentialGroup()
                            .addContainerGap()
                            .addComponent(jPanel15, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(jPanel13, javax.swing.GroupLayout.PREFERRED_SIZE, 325, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1222Layout.createSequentialGroup()
                            .addContainerGap()
                            .addComponent(jPanel16, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(jPanel14, javax.swing.GroupLayout.PREFERRED_SIZE, 326, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1222Layout.createSequentialGroup()
                            .addContainerGap()
                            .addComponent(jPanel18, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(jPanel17, javax.swing.GroupLayout.PREFERRED_SIZE, 328, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1222Layout.createSequentialGroup()
                            .addContainerGap()
                            .addComponent(jPanel20, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(jPanel19, javax.swing.GroupLayout.PREFERRED_SIZE, 328, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addComponent(jLabel2)
                        .addComponent(jLabel3)
                        .addComponent(jLabel11)
                        .addComponent(jLabel16)
                        .addComponent(jLabel22)))
                .addContainerGap(15, Short.MAX_VALUE))
        );
        jPanel1222Layout.setVerticalGroup(
            jPanel1222Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1222Layout.createSequentialGroup()
                .addComponent(jLabel2)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1222Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jPanel15, javax.swing.GroupLayout.DEFAULT_SIZE, 79, Short.MAX_VALUE)
                    .addComponent(jPanel13, javax.swing.GroupLayout.DEFAULT_SIZE, 79, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel3)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1222Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jPanel16, javax.swing.GroupLayout.DEFAULT_SIZE, 99, Short.MAX_VALUE)
                    .addComponent(jPanel14, javax.swing.GroupLayout.DEFAULT_SIZE, 99, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel11)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1222Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jPanel18, javax.swing.GroupLayout.DEFAULT_SIZE, 99, Short.MAX_VALUE)
                    .addComponent(jPanel17, javax.swing.GroupLayout.DEFAULT_SIZE, 99, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel16)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1222Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(jPanel20, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jPanel19, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel22)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jComboBoxE, javax.swing.GroupLayout.PREFERRED_SIZE, 24, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );

        jPanel833.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Please select electives you plan to take...", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Times New Roman", 1, 18))); // NOI18N

        jListInterestElective.setFont(new java.awt.Font("Tahoma", 0, 15));
        jListInterestElective.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
        jListInterestElective.setToolTipText("Course List of All Electives.");
        jListInterestElective.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusGained(java.awt.event.FocusEvent evt) {
                jListInterestElectiveFocusGained(evt);
            }
        });
        jScrollPane3.setViewportView(jListInterestElective);

        jListInterestInterest.setBorder(javax.swing.BorderFactory.createTitledBorder("Plan"));
        jListInterestInterest.setFont(new java.awt.Font("Tahoma", 0, 15));
        jListInterestInterest.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
        jListInterestInterest.setToolTipText("List of Electives You Plan to Take.");
        jListInterestInterest.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusGained(java.awt.event.FocusEvent evt) {
                jListInterestInterestFocusGained(evt);
            }
        });
        jScrollPane4.setViewportView(jListInterestInterest);

        jPanel9.setLayout(new java.awt.GridLayout(3, 0, 10, 10));

        jButtonInterestInsert.setFont(new java.awt.Font("Tahoma", 0, 24));
        jButtonInterestInsert.setText(">>");
        jButtonInterestInsert.setToolTipText("Add Course");
        jButtonInterestInsert.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonInterestInsertActionPerformed(evt);
            }
        });
        jPanel9.add(jButtonInterestInsert);

        jButtonInterestRemove.setFont(new java.awt.Font("Tahoma", 0, 24));
        jButtonInterestRemove.setText("<<");
        jButtonInterestRemove.setToolTipText("Remove Course");
        jButtonInterestRemove.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonInterestRemoveActionPerformed(evt);
            }
        });
        jPanel9.add(jButtonInterestRemove);

        jButtonInterestDesc2.setFont(new java.awt.Font("Tahoma", 0, 18));
        jButtonInterestDesc2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/magnifying.png"))); // NOI18N
        jButtonInterestDesc2.setToolTipText("Course Description");
        jButtonInterestDesc2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonInterestDesc2ActionPerformed(evt);
            }
        });
        jPanel9.add(jButtonInterestDesc2);

        javax.swing.GroupLayout jPanel833Layout = new javax.swing.GroupLayout(jPanel833);
        jPanel833.setLayout(jPanel833Layout);
        jPanel833Layout.setHorizontalGroup(
            jPanel833Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel833Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 292, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jPanel9, javax.swing.GroupLayout.PREFERRED_SIZE, 81, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jScrollPane4, javax.swing.GroupLayout.PREFERRED_SIZE, 127, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        jPanel833Layout.setVerticalGroup(
            jPanel833Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel833Layout.createSequentialGroup()
                .addGroup(jPanel833Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jScrollPane3, javax.swing.GroupLayout.DEFAULT_SIZE, 539, Short.MAX_VALUE)
                    .addComponent(jScrollPane4, javax.swing.GroupLayout.DEFAULT_SIZE, 539, Short.MAX_VALUE)
                    .addComponent(jPanel9, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 163, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap())
        );

        jMenuInterestsFile.setMnemonic('F');
        jMenuInterestsFile.setText("File   ");

        jMenuItemInterestsNew.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_N, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemInterestsNew.setMnemonic('N');
        jMenuItemInterestsNew.setText("New");
        jMenuItemInterestsNew.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemInterestsNewActionPerformed(evt);
            }
        });
        jMenuInterestsFile.add(jMenuItemInterestsNew);

        jMenuItemInterestsOpen.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemInterestsOpen.setMnemonic('O');
        jMenuItemInterestsOpen.setText("Open");
        jMenuItemInterestsOpen.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemInterestsOpenActionPerformed(evt);
            }
        });
        jMenuInterestsFile.add(jMenuItemInterestsOpen);
        jMenuInterestsFile.add(jSeparator5);

        jMenuItemInterestsSave.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemInterestsSave.setMnemonic('S');
        jMenuItemInterestsSave.setText("Save");
        jMenuItemInterestsSave.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemInterestsSaveActionPerformed(evt);
            }
        });
        jMenuInterestsFile.add(jMenuItemInterestsSave);

        jMenuItemInterestsSaveas.setText("Save As");
        jMenuItemInterestsSaveas.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemInterestsSaveasActionPerformed(evt);
            }
        });
        jMenuInterestsFile.add(jMenuItemInterestsSaveas);
        jMenuInterestsFile.add(jSeparator6);

        jMenuItemInterestsExit.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_X, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemInterestsExit.setMnemonic('x');
        jMenuItemInterestsExit.setText("Exit");
        jMenuItemInterestsExit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemInterestsExitActionPerformed(evt);
            }
        });
        jMenuInterestsFile.add(jMenuItemInterestsExit);

        jMenuBarInterests.add(jMenuInterestsFile);

        jMenuStartView2.setMnemonic('n');
        jMenuStartView2.setText("Menu   ");

        jMenuItemInterestsWelcome.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_W, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemInterestsWelcome.setText("Welcome Menu");
        jMenuItemInterestsWelcome.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemInterestsWelcomeActionPerformed(evt);
            }
        });
        jMenuStartView2.add(jMenuItemInterestsWelcome);

        jMenuItemInterestsMode.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_M, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemInterestsMode.setText("Mode Menu");
        jMenuItemInterestsMode.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemInterestsModeActionPerformed(evt);
            }
        });
        jMenuStartView2.add(jMenuItemInterestsMode);
        jMenuStartView2.add(jSeparator21);

        jMenuItem3.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_U, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem3.setMnemonic('u');
        jMenuItem3.setText("Profile Menu");
        jMenuItem3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem3ActionPerformed(evt);
            }
        });
        jMenuStartView2.add(jMenuItem3);

        jMenuItemQPResults7.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_Q, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemQPResults7.setMnemonic('q');
        jMenuItemQPResults7.setText("Quaterly Plan Menu");
        jMenuItemQPResults7.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemQPResults7ActionPerformed(evt);
            }
        });
        jMenuStartView2.add(jMenuItemQPResults7);

        jMenuItemAPResults7.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_A, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemAPResults7.setMnemonic('a');
        jMenuItemAPResults7.setText("Academic Plan Menu");
        jMenuItemAPResults7.setEnabled(false);
        jMenuItemAPResults7.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemAPResults7ActionPerformed(evt);
            }
        });
        jMenuStartView2.add(jMenuItemAPResults7);

        jMenuBarInterests.add(jMenuStartView2);

        jMenuInterestsInfo.setMnemonic('h');
        jMenuInterestsInfo.setText("Help");

        jMenuItemInterestsHelp.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F1, 0));
        jMenuItemInterestsHelp.setText("Help");
        jMenuItemInterestsHelp.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemInterestsHelpActionPerformed(evt);
            }
        });
        jMenuInterestsInfo.add(jMenuItemInterestsHelp);

        jMenuItemInterestsAuthor.setMnemonic('a');
        jMenuItemInterestsAuthor.setText("About");
        jMenuItemInterestsAuthor.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemInterestsAuthorActionPerformed(evt);
            }
        });
        jMenuInterestsInfo.add(jMenuItemInterestsAuthor);

        jMenuBarInterests.add(jMenuInterestsInfo);

        jFrameInterests.setJMenuBar(jMenuBarInterests);

        javax.swing.GroupLayout jFrameInterestsLayout = new javax.swing.GroupLayout(jFrameInterests.getContentPane());
        jFrameInterests.getContentPane().setLayout(jFrameInterestsLayout);
        jFrameInterestsLayout.setHorizontalGroup(
            jFrameInterestsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jFrameInterestsLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jFrameInterestsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jFrameInterestsLayout.createSequentialGroup()
                        .addComponent(jPanel833, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(jPanel1222, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                    .addComponent(jPanel10, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );
        jFrameInterestsLayout.setVerticalGroup(
            jFrameInterestsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jFrameInterestsLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jFrameInterestsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(jPanel833, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jPanel1222, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel10, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );

        jFrameMode.setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        jFrameMode.setTitle(TITLE+" (Mode Selection Menu)");
        jFrameMode.setMinimumSize(new java.awt.Dimension(756, 354));
        jFrameMode.setName("frameStart"); // NOI18N
        jFrameMode.setResizable(false);

        jLabelWelcome2.setFont(new java.awt.Font("Times New Roman", 3, 24));
        jLabelWelcome2.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabelWelcome2.setText("Please make a selection...");

        javax.swing.GroupLayout jPanelStartMessage1Layout = new javax.swing.GroupLayout(jPanelStartMessage1);
        jPanelStartMessage1.setLayout(jPanelStartMessage1Layout);
        jPanelStartMessage1Layout.setHorizontalGroup(
            jPanelStartMessage1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jLabelWelcome2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 702, Short.MAX_VALUE)
        );
        jPanelStartMessage1Layout.setVerticalGroup(
            jPanelStartMessage1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanelStartMessage1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabelWelcome2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );

        jPanelStartButtons1.setLayout(new java.awt.GridLayout(1, 3, 10, 0));

        jButtonModeUpdate.setFont(new java.awt.Font("Tahoma", 0, 18));
        jButtonModeUpdate.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/man_smile_1.png"))); // NOI18N
        jButtonModeUpdate.setText("Update Profile");
        jButtonModeUpdate.setToolTipText("Which Classes Have You Completed?");
        jButtonModeUpdate.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        jButtonModeUpdate.setVerticalAlignment(javax.swing.SwingConstants.BOTTOM);
        jButtonModeUpdate.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jButtonModeUpdate.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonModeUpdateActionPerformed(evt);
            }
        });
        jPanelStartButtons1.add(jButtonModeUpdate);

        jButtonModeQuarterly.setFont(new java.awt.Font("Tahoma", 0, 18));
        jButtonModeQuarterly.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/calendar.png"))); // NOI18N
        jButtonModeQuarterly.setText("Quarterly Schedule");
        jButtonModeQuarterly.setToolTipText("Mode to Schedule the Up-Coming Quarter Only.");
        jButtonModeQuarterly.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        jButtonModeQuarterly.setMaximumSize(new java.awt.Dimension(107, 31));
        jButtonModeQuarterly.setMinimumSize(new java.awt.Dimension(107, 31));
        jButtonModeQuarterly.setPreferredSize(new java.awt.Dimension(107, 31));
        jButtonModeQuarterly.setVerticalAlignment(javax.swing.SwingConstants.BOTTOM);
        jButtonModeQuarterly.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jButtonModeQuarterly.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonModeQuarterlyActionPerformed(evt);
            }
        });
        jPanelStartButtons1.add(jButtonModeQuarterly);

        jButtonModeAcademic.setFont(new java.awt.Font("Tahoma", 0, 18));
        jButtonModeAcademic.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/cap_degree.png"))); // NOI18N
        jButtonModeAcademic.setText("Academic Plan");
        jButtonModeAcademic.setToolTipText("Mode to Schedule all Your Classes.");
        jButtonModeAcademic.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        jButtonModeAcademic.setMaximumSize(new java.awt.Dimension(107, 31));
        jButtonModeAcademic.setMinimumSize(new java.awt.Dimension(107, 31));
        jButtonModeAcademic.setPreferredSize(new java.awt.Dimension(107, 31));
        jButtonModeAcademic.setVerticalAlignment(javax.swing.SwingConstants.BOTTOM);
        jButtonModeAcademic.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jButtonModeAcademic.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonModeAcademicActionPerformed(evt);
            }
        });
        jPanelStartButtons1.add(jButtonModeAcademic);

        jMenuModeFile.setMnemonic('F');
        jMenuModeFile.setText("File   ");

        jMenuItemModeNew.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_N, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemModeNew.setMnemonic('N');
        jMenuItemModeNew.setText("New");
        jMenuItemModeNew.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemModeNewActionPerformed(evt);
            }
        });
        jMenuModeFile.add(jMenuItemModeNew);

        jMenuItemModeOpen.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemModeOpen.setMnemonic('O');
        jMenuItemModeOpen.setText("Open");
        jMenuItemModeOpen.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemModeOpenActionPerformed(evt);
            }
        });
        jMenuModeFile.add(jMenuItemModeOpen);
        jMenuModeFile.add(jSeparator7);

        jMenuItemModeSave.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemModeSave.setMnemonic('S');
        jMenuItemModeSave.setText("Save");
        jMenuItemModeSave.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemModeSaveActionPerformed(evt);
            }
        });
        jMenuModeFile.add(jMenuItemModeSave);

        jMenuItemModeSaveas.setText("Save As");
        jMenuItemModeSaveas.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemModeSaveasActionPerformed(evt);
            }
        });
        jMenuModeFile.add(jMenuItemModeSaveas);
        jMenuModeFile.add(jSeparator8);

        jMenuItemModeExit.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_X, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemModeExit.setMnemonic('x');
        jMenuItemModeExit.setText("Exit");
        jMenuItemModeExit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemModeExitActionPerformed(evt);
            }
        });
        jMenuModeFile.add(jMenuItemModeExit);

        jMenuBarMode.add(jMenuModeFile);

        jMenuModeView.setMnemonic('m');
        jMenuModeView.setText("Menu   ");

        jMenuItemModeWelcome.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_W, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemModeWelcome.setMnemonic('w');
        jMenuItemModeWelcome.setText("Welcome Menu");
        jMenuItemModeWelcome.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemModeWelcomeActionPerformed(evt);
            }
        });
        jMenuModeView.add(jMenuItemModeWelcome);

        jMenuItemModeMode.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_M, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemModeMode.setMnemonic('m');
        jMenuItemModeMode.setText("Mode Menu");
        jMenuItemModeMode.setEnabled(false);
        jMenuModeView.add(jMenuItemModeMode);
        jMenuModeView.add(jSeparator16);

        jMenuItem4.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_U, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem4.setMnemonic('u');
        jMenuItem4.setText("Profile Menu");
        jMenuItem4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem4ActionPerformed(evt);
            }
        });
        jMenuModeView.add(jMenuItem4);

        jMenuItemQPResults2.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_Q, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemQPResults2.setMnemonic('q');
        jMenuItemQPResults2.setText("Quaterly Plan Menu");
        jMenuItemQPResults2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemQPResults2ActionPerformed(evt);
            }
        });
        jMenuModeView.add(jMenuItemQPResults2);

        jMenuItemAPResults2.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_A, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemAPResults2.setMnemonic('a');
        jMenuItemAPResults2.setText("Academic Plan Menu");
        jMenuItemAPResults2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemAPResults2ActionPerformed(evt);
            }
        });
        jMenuModeView.add(jMenuItemAPResults2);

        jMenuBarMode.add(jMenuModeView);

        jMenuModeInfo.setMnemonic('h');
        jMenuModeInfo.setText("Help");

        jMenuItemModeHelp.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F1, 0));
        jMenuItemModeHelp.setText("Help");
        jMenuItemModeHelp.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemModeHelpActionPerformed(evt);
            }
        });
        jMenuModeInfo.add(jMenuItemModeHelp);

        jMenuItemModeAuthor.setMnemonic('a');
        jMenuItemModeAuthor.setText("About");
        jMenuItemModeAuthor.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemModeAuthorActionPerformed(evt);
            }
        });
        jMenuModeInfo.add(jMenuItemModeAuthor);

        jMenuBarMode.add(jMenuModeInfo);

        jFrameMode.setJMenuBar(jMenuBarMode);

        javax.swing.GroupLayout jFrameModeLayout = new javax.swing.GroupLayout(jFrameMode.getContentPane());
        jFrameMode.getContentPane().setLayout(jFrameModeLayout);
        jFrameModeLayout.setHorizontalGroup(
            jFrameModeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jFrameModeLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jFrameModeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jPanelStartButtons1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 702, Short.MAX_VALUE)
                    .addComponent(jPanelStartMessage1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );
        jFrameModeLayout.setVerticalGroup(
            jFrameModeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jFrameModeLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanelStartMessage1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanelStartButtons1, javax.swing.GroupLayout.DEFAULT_SIZE, 205, Short.MAX_VALUE)
                .addContainerGap())
        );

        jTextArea2.setColumns(20);
        jTextArea2.setEditable(false);
        jTextArea2.setLineWrap(true);
        jTextArea2.setRows(5);
        jTextArea2.setText("hello");
        jTextArea2.setWrapStyleWord(true);
        jTextArea2.setBorder(null);
        jTextArea2.setOpaque(false);
        jScrollPane25.setViewportView(jTextArea2);

        javax.swing.GroupLayout jFrameTestingLayout = new javax.swing.GroupLayout(jFrameTesting.getContentPane());
        jFrameTesting.getContentPane().setLayout(jFrameTestingLayout);
        jFrameTestingLayout.setHorizontalGroup(
            jFrameTestingLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jFrameTestingLayout.createSequentialGroup()
                .addGap(403, 403, 403)
                .addComponent(jScrollPane25, javax.swing.GroupLayout.PREFERRED_SIZE, 124, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(493, Short.MAX_VALUE))
        );
        jFrameTestingLayout.setVerticalGroup(
            jFrameTestingLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jFrameTestingLayout.createSequentialGroup()
                .addGap(115, 115, 115)
                .addComponent(jScrollPane25, javax.swing.GroupLayout.PREFERRED_SIZE, 37, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(497, Short.MAX_VALUE))
        );

        jFrameAcademicPlan.setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        jFrameAcademicPlan.setTitle(TITLE);
        jFrameAcademicPlan.setMinimumSize(new java.awt.Dimension(756, 324));
        jFrameAcademicPlan.setName("frameStart"); // NOI18N
        jFrameAcademicPlan.setResizable(false);

        jLabel23.setText("Academic Plan");

        jTextArea1.setColumns(20);
        jTextArea1.setRows(5);
        jScrollPane5.setViewportView(jTextArea1);

        jButton4.setText("Yuhan's Trap!");
        jButton4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton4ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jFrameAcademicPlanLayout = new javax.swing.GroupLayout(jFrameAcademicPlan.getContentPane());
        jFrameAcademicPlan.getContentPane().setLayout(jFrameAcademicPlanLayout);
        jFrameAcademicPlanLayout.setHorizontalGroup(
            jFrameAcademicPlanLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jFrameAcademicPlanLayout.createSequentialGroup()
                .addGroup(jFrameAcademicPlanLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jFrameAcademicPlanLayout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jLabel23))
                    .addGroup(jFrameAcademicPlanLayout.createSequentialGroup()
                        .addGap(20, 20, 20)
                        .addComponent(jScrollPane5, javax.swing.GroupLayout.PREFERRED_SIZE, 529, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(12, 12, 12)
                        .addComponent(jButton4, javax.swing.GroupLayout.PREFERRED_SIZE, 167, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(38, Short.MAX_VALUE))
        );
        jFrameAcademicPlanLayout.setVerticalGroup(
            jFrameAcademicPlanLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jFrameAcademicPlanLayout.createSequentialGroup()
                .addGap(13, 13, 13)
                .addComponent(jLabel23)
                .addGap(18, 18, 18)
                .addGroup(jFrameAcademicPlanLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane5, javax.swing.GroupLayout.DEFAULT_SIZE, 179, Short.MAX_VALUE)
                    .addComponent(jButton4, javax.swing.GroupLayout.DEFAULT_SIZE, 179, Short.MAX_VALUE))
                .addContainerGap())
        );

        jFrameDescription.setTitle("Course Description");
        jFrameDescription.setAlwaysOnTop(true);
        jFrameDescription.setMinimumSize(new java.awt.Dimension(773, 260));
        jFrameDescription.setResizable(false);

        jButtonBookInfo1.setFont(new java.awt.Font("Tahoma", 0, 18));
        jButtonBookInfo1.setText("Close");
        jButtonBookInfo1.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        jButtonBookInfo1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonBookInfo1ActionPerformed(evt);
            }
        });

        jLabel24.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel24.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/book_info.png"))); // NOI18N
        jLabel24.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);

        javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5);
        jPanel5.setLayout(jPanel5Layout);
        jPanel5Layout.setHorizontalGroup(
            jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel5Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jButtonBookInfo1, javax.swing.GroupLayout.DEFAULT_SIZE, 117, Short.MAX_VALUE)
                    .addComponent(jLabel24, javax.swing.GroupLayout.DEFAULT_SIZE, 117, Short.MAX_VALUE))
                .addContainerGap())
        );
        jPanel5Layout.setVerticalGroup(
            jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel5Layout.createSequentialGroup()
                .addGap(18, 18, 18)
                .addComponent(jLabel24, javax.swing.GroupLayout.DEFAULT_SIZE, 121, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jButtonBookInfo1, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );

        jLabelDescCourseName.setFont(new java.awt.Font("Times New Roman", 1, 21));

        jTextAreaDesc.setColumns(20);
        jTextAreaDesc.setFont(new java.awt.Font("Times New Roman", 0, 18));
        jTextAreaDesc.setLineWrap(true);
        jTextAreaDesc.setRows(5);
        jTextAreaDesc.setWrapStyleWord(true);
        jTextAreaDesc.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
        jTextAreaDesc.setDisabledTextColor(new java.awt.Color(0, 0, 0));
        jTextAreaDesc.setOpaque(false);
        jScrollPane6.setViewportView(jTextAreaDesc);

        javax.swing.GroupLayout jPanel21Layout = new javax.swing.GroupLayout(jPanel21);
        jPanel21.setLayout(jPanel21Layout);
        jPanel21Layout.setHorizontalGroup(
            jPanel21Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel21Layout.createSequentialGroup()
                .addGap(22, 22, 22)
                .addComponent(jScrollPane6, javax.swing.GroupLayout.DEFAULT_SIZE, 550, Short.MAX_VALUE))
            .addGroup(jPanel21Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabelDescCourseName, javax.swing.GroupLayout.DEFAULT_SIZE, 560, Short.MAX_VALUE))
        );
        jPanel21Layout.setVerticalGroup(
            jPanel21Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel21Layout.createSequentialGroup()
                .addComponent(jLabelDescCourseName, javax.swing.GroupLayout.PREFERRED_SIZE, 38, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane6, javax.swing.GroupLayout.DEFAULT_SIZE, 133, Short.MAX_VALUE)
                .addContainerGap())
        );

        javax.swing.GroupLayout jFrameDescriptionLayout = new javax.swing.GroupLayout(jFrameDescription.getContentPane());
        jFrameDescription.getContentPane().setLayout(jFrameDescriptionLayout);
        jFrameDescriptionLayout.setHorizontalGroup(
            jFrameDescriptionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jFrameDescriptionLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel21, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(20, 20, 20))
        );
        jFrameDescriptionLayout.setVerticalGroup(
            jFrameDescriptionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jFrameDescriptionLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jFrameDescriptionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jPanel21, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jPanel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );

        jFrameTime.setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        jFrameTime.setTitle(TITLE+" (Quarterly Plan Menu)");
        jFrameTime.setMinimumSize(new java.awt.Dimension(1000, 700));
        jFrameTime.setResizable(false);

        jButtonTimeNext.setFont(new java.awt.Font("Tahoma", 3, 14));
        jButtonTimeNext.setForeground(new java.awt.Color(255, 0, 0));
        jButtonTimeNext.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/next_blue_1.png"))); // NOI18N
        jButtonTimeNext.setToolTipText("Generate Quarterly Schedules.");
        jButtonTimeNext.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        jButtonTimeNext.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonTimeNextActionPerformed(evt);
            }
        });

        jButton13.setFont(new java.awt.Font("Times New Roman", 3, 14));
        jButton13.setForeground(new java.awt.Color(255, 0, 0));
        jButton13.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/back_blue_1.png"))); // NOI18N
        jButton13.setToolTipText("Mode Selection Menu.");
        jButton13.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        jButton13.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton13ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel23Layout = new javax.swing.GroupLayout(jPanel23);
        jPanel23.setLayout(jPanel23Layout);
        jPanel23Layout.setHorizontalGroup(
            jPanel23Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel23Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jButton13, javax.swing.GroupLayout.PREFERRED_SIZE, 103, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 825, Short.MAX_VALUE)
                .addComponent(jButtonTimeNext, javax.swing.GroupLayout.PREFERRED_SIZE, 103, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );
        jPanel23Layout.setVerticalGroup(
            jPanel23Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel23Layout.createSequentialGroup()
                .addComponent(jButton13, javax.swing.GroupLayout.DEFAULT_SIZE, 66, Short.MAX_VALUE)
                .addGap(16, 16, 16))
            .addGroup(jPanel23Layout.createSequentialGroup()
                .addComponent(jButtonTimeNext, javax.swing.GroupLayout.PREFERRED_SIZE, 69, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );

        jPanel22.setPreferredSize(new java.awt.Dimension(923, 609));

        jPanel24.setLayout(new java.awt.GridLayout(7, 3, 10, 30));

        jLabel25.setFont(new java.awt.Font("Tahoma", 1, 14));
        jLabel25.setText("Days");
        jPanel24.add(jLabel25);

        jLabel32.setFont(new java.awt.Font("Tahoma", 1, 14));
        jLabel32.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel32.setText("No Class");
        jPanel24.add(jLabel32);

        jLabel26.setFont(new java.awt.Font("Tahoma", 1, 14));
        jLabel26.setText("Start Time");
        jPanel24.add(jLabel26);

        jLabel27.setFont(new java.awt.Font("Tahoma", 1, 14));
        jLabel27.setText("End Time");
        jPanel24.add(jLabel27);

        jLabel28.setFont(new java.awt.Font("Tahoma", 1, 14));
        jLabel28.setText("Monday");
        jPanel24.add(jLabel28);

        jCheckMon.setAlignmentX(0.5F);
        jCheckMon.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jCheckMon.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                jCheckMonStateChanged(evt);
            }
        });
        jCheckMon.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckMonActionPerformed(evt);
            }
        });
        jPanel24.add(jCheckMon);

        jComboMonS.setFont(new java.awt.Font("Tahoma", 0, 15));
        jComboMonS.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "7:00AM", "8:00AM", "9:00AM", "10:00AM", "11:00AM", "12:00PM", "1:00PM", "2:00PM", "3:00PM", "4:00PM", "5:00PM", "6:00PM", "7:00PM", "8:00PM" }));
        jComboMonS.setName("jComboMonS"); // NOI18N
        jPanel24.add(jComboMonS);

        jComboMonE.setFont(new java.awt.Font("Tahoma", 0, 15));
        jComboMonE.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "8:00AM", "9:00AM", "10:00AM", "11:00AM", "12:00PM", "1:00PM", "2:00PM", "3:00PM", "4:00PM", "5:00PM", "6:00PM", "7:00PM", "8:00PM", "9:00PM" }));
        jComboMonE.setSelectedIndex(13);
        jComboMonE.setName("jComboMonE"); // NOI18N
        jPanel24.add(jComboMonE);

        jLabel29.setFont(new java.awt.Font("Tahoma", 1, 14));
        jLabel29.setText("Tuesday");
        jPanel24.add(jLabel29);

        jCheckTue.setAlignmentX(0.5F);
        jCheckTue.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jCheckTue.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                jCheckTueStateChanged(evt);
            }
        });
        jCheckTue.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckTueActionPerformed(evt);
            }
        });
        jPanel24.add(jCheckTue);

        jComboTueS.setFont(new java.awt.Font("Tahoma", 0, 15));
        jComboTueS.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "7:00AM", "8:00AM", "9:00AM", "10:00AM", "11:00AM", "12:00PM", "1:00PM", "2:00PM", "3:00PM", "4:00PM", "5:00PM", "6:00PM", "7:00PM", "8:00PM" }));
        jComboTueS.setName("jComboTueS"); // NOI18N
        jPanel24.add(jComboTueS);

        jComboTueE.setFont(new java.awt.Font("Tahoma", 0, 15));
        jComboTueE.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "8:00AM", "9:00AM", "10:00AM", "11:00AM", "12:00PM", "1:00PM", "2:00PM", "3:00PM", "4:00PM", "5:00PM", "6:00PM", "7:00PM", "8:00PM", "9:00PM" }));
        jComboTueE.setSelectedIndex(13);
        jComboTueE.setName("jComboTueE"); // NOI18N
        jPanel24.add(jComboTueE);

        jLabel30.setFont(new java.awt.Font("Tahoma", 1, 14));
        jLabel30.setText("Wednesday");
        jPanel24.add(jLabel30);

        jCheckWed.setAlignmentX(0.5F);
        jCheckWed.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jCheckWed.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                jCheckWedStateChanged(evt);
            }
        });
        jCheckWed.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckWedActionPerformed(evt);
            }
        });
        jPanel24.add(jCheckWed);

        jComboWedS.setFont(new java.awt.Font("Tahoma", 0, 15));
        jComboWedS.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "7:00AM", "8:00AM", "9:00AM", "10:00AM", "11:00AM", "12:00PM", "1:00PM", "2:00PM", "3:00PM", "4:00PM", "5:00PM", "6:00PM", "7:00PM", "8:00PM" }));
        jComboWedS.setName("jComboWedS"); // NOI18N
        jPanel24.add(jComboWedS);

        jComboWedE.setFont(new java.awt.Font("Tahoma", 0, 15));
        jComboWedE.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "8:00AM", "9:00AM", "10:00AM", "11:00AM", "12:00PM", "1:00PM", "2:00PM", "3:00PM", "4:00PM", "5:00PM", "6:00PM", "7:00PM", "8:00PM", "9:00PM" }));
        jComboWedE.setSelectedIndex(13);
        jComboWedE.setName("jComboWedE"); // NOI18N
        jPanel24.add(jComboWedE);

        jLabel31.setFont(new java.awt.Font("Tahoma", 1, 14));
        jLabel31.setText("Thursday");
        jPanel24.add(jLabel31);

        jCheckThu.setAlignmentX(0.5F);
        jCheckThu.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jCheckThu.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                jCheckThuStateChanged(evt);
            }
        });
        jCheckThu.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckThuActionPerformed(evt);
            }
        });
        jPanel24.add(jCheckThu);

        jComboThuS.setFont(new java.awt.Font("Tahoma", 0, 15));
        jComboThuS.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "7:00AM", "8:00AM", "9:00AM", "10:00AM", "11:00AM", "12:00PM", "1:00PM", "2:00PM", "3:00PM", "4:00PM", "5:00PM", "6:00PM", "7:00PM", "8:00PM" }));
        jComboThuS.setName("jComboThuS"); // NOI18N
        jPanel24.add(jComboThuS);

        jComboThuE.setFont(new java.awt.Font("Tahoma", 0, 15));
        jComboThuE.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "8:00AM", "9:00AM", "10:00AM", "11:00AM", "12:00PM", "1:00PM", "2:00PM", "3:00PM", "4:00PM", "5:00PM", "6:00PM", "7:00PM", "8:00PM", "9:00PM" }));
        jComboThuE.setSelectedIndex(13);
        jComboThuE.setName("jComboThuE"); // NOI18N
        jPanel24.add(jComboThuE);

        jLabel33.setFont(new java.awt.Font("Tahoma", 1, 14));
        jLabel33.setText("Friday");
        jPanel24.add(jLabel33);

        jCheckFri.setAlignmentX(0.5F);
        jCheckFri.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jCheckFri.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                jCheckFriStateChanged(evt);
            }
        });
        jCheckFri.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckFriActionPerformed(evt);
            }
        });
        jPanel24.add(jCheckFri);

        jComboFriS.setFont(new java.awt.Font("Tahoma", 0, 15));
        jComboFriS.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "7:00AM", "8:00AM", "9:00AM", "10:00AM", "11:00AM", "12:00PM", "1:00PM", "2:00PM", "3:00PM", "4:00PM", "5:00PM", "6:00PM", "7:00PM", "8:00PM" }));
        jComboFriS.setName("jComboFriS"); // NOI18N
        jPanel24.add(jComboFriS);

        jComboFriE.setFont(new java.awt.Font("Tahoma", 0, 15));
        jComboFriE.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "8:00AM", "9:00AM", "10:00AM", "11:00AM", "12:00PM", "1:00PM", "2:00PM", "3:00PM", "4:00PM", "5:00PM", "6:00PM", "7:00PM", "8:00PM", "9:00PM" }));
        jComboFriE.setSelectedIndex(13);
        jComboFriE.setName("jComboFriE"); // NOI18N
        jPanel24.add(jComboFriE);

        jLabel34.setFont(new java.awt.Font("Tahoma", 1, 14));
        jLabel34.setText("Saturday");
        jPanel24.add(jLabel34);

        jCheckSat.setAlignmentX(0.5F);
        jCheckSat.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jCheckSat.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                jCheckSatStateChanged(evt);
            }
        });
        jCheckSat.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckSatActionPerformed(evt);
            }
        });
        jPanel24.add(jCheckSat);

        jComboSatS.setFont(new java.awt.Font("Tahoma", 0, 15));
        jComboSatS.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "7:00AM", "8:00AM", "9:00AM", "10:00AM", "11:00AM", "12:00PM", "1:00PM", "2:00PM", "3:00PM", "4:00PM", "5:00PM", "6:00PM", "7:00PM", "8:00PM" }));
        jComboSatS.setName("jComboSatS"); // NOI18N
        jPanel24.add(jComboSatS);

        jComboSatE.setFont(new java.awt.Font("Tahoma", 0, 15));
        jComboSatE.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "8:00AM", "9:00AM", "10:00AM", "11:00AM", "12:00PM", "1:00PM", "2:00PM", "3:00PM", "4:00PM", "5:00PM" }));
        jComboSatE.setSelectedIndex(9);
        jComboSatE.setName("jComboSatE"); // NOI18N
        jPanel24.add(jComboSatE);

        javax.swing.GroupLayout jPanel22Layout = new javax.swing.GroupLayout(jPanel22);
        jPanel22.setLayout(jPanel22Layout);
        jPanel22Layout.setHorizontalGroup(
            jPanel22Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel22Layout.createSequentialGroup()
                .addGap(38, 38, 38)
                .addComponent(jPanel24, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel35)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        jPanel22Layout.setVerticalGroup(
            jPanel22Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel22Layout.createSequentialGroup()
                .addGroup(jPanel22Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel22Layout.createSequentialGroup()
                        .addGap(362, 362, 362)
                        .addComponent(jLabel35))
                    .addGroup(jPanel22Layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jPanel24, javax.swing.GroupLayout.DEFAULT_SIZE, 397, Short.MAX_VALUE)))
                .addContainerGap())
        );

        jComboBox1.setFont(new java.awt.Font("Tahoma", 0, 15));
        jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "4 Units  per Quarter", "8 Units per Quarter", "12 Units per Quarter", "16 Units per Quarter", "20 Units per Quarter", "24 Units per Quarter" }));
        jComboBox1.setSelectedIndex(3);
        jComboBox1.setToolTipText("Course Load for the Quarter");

        javax.swing.GroupLayout jPanel25Layout = new javax.swing.GroupLayout(jPanel25);
        jPanel25.setLayout(jPanel25Layout);
        jPanel25Layout.setHorizontalGroup(
            jPanel25Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel25Layout.createSequentialGroup()
                .addContainerGap(37, Short.MAX_VALUE)
                .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, 192, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(27, 27, 27))
        );
        jPanel25Layout.setVerticalGroup(
            jPanel25Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel25Layout.createSequentialGroup()
                .addGap(37, 37, 37)
                .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(49, Short.MAX_VALUE))
        );

        jPanel28.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Which classes would you like to take this quarter?", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Times New Roman", 1, 18))); // NOI18N

        jListTimeCourses.setFont(new java.awt.Font("Tahoma", 0, 15));
        jListTimeCourses.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
        jListTimeCourses.setToolTipText("Available Courses");
        jListTimeCourses.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusGained(java.awt.event.FocusEvent evt) {
                jListTimeCoursesFocusGained(evt);
            }
        });
        jScrollPane10.setViewportView(jListTimeCourses);

        jListTimePlan.setBorder(javax.swing.BorderFactory.createTitledBorder("Please Rank..."));
        jListTimePlan.setFont(new java.awt.Font("Tahoma", 0, 15));
        jListTimePlan.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
        jListTimePlan.setToolTipText("Ranked Courses of Interest");
        jListTimePlan.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusGained(java.awt.event.FocusEvent evt) {
                jListTimePlanFocusGained(evt);
            }
        });
        jScrollPane11.setViewportView(jListTimePlan);

        jPanel29.setLayout(new java.awt.GridLayout(3, 0, 10, 10));

        jButtonTimeInsert.setFont(new java.awt.Font("Tahoma", 0, 24));
        jButtonTimeInsert.setText(">>");
        jButtonTimeInsert.setToolTipText("Add Course");
        jButtonTimeInsert.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonTimeInsertActionPerformed(evt);
            }
        });
        jPanel29.add(jButtonTimeInsert);

        jButtonTimeRemove.setFont(new java.awt.Font("Tahoma", 0, 24));
        jButtonTimeRemove.setText("<<");
        jButtonTimeRemove.setToolTipText("Remove Course");
        jButtonTimeRemove.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonTimeRemoveActionPerformed(evt);
            }
        });
        jPanel29.add(jButtonTimeRemove);

        jButtonTimeDesc.setFont(new java.awt.Font("Tahoma", 0, 18));
        jButtonTimeDesc.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/magnifying.png"))); // NOI18N
        jButtonTimeDesc.setToolTipText("Course Description");
        jButtonTimeDesc.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonTimeDescActionPerformed(evt);
            }
        });
        jPanel29.add(jButtonTimeDesc);

        jPanel30.setLayout(new java.awt.GridLayout(2, 0, 10, 10));

        jButtonTimeRankUp.setFont(new java.awt.Font("Tahoma", 0, 18));
        jButtonTimeRankUp.setText("Up");
        jButtonTimeRankUp.setToolTipText("Rank Course Up.");
        jButtonTimeRankUp.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonTimeRankUpActionPerformed(evt);
            }
        });
        jPanel30.add(jButtonTimeRankUp);

        jButtonTimeRankDown.setFont(new java.awt.Font("Tahoma", 0, 18));
        jButtonTimeRankDown.setText("Down");
        jButtonTimeRankDown.setToolTipText("Rank Course Down");
        jButtonTimeRankDown.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonTimeRankDownActionPerformed(evt);
            }
        });
        jPanel30.add(jButtonTimeRankDown);

        javax.swing.GroupLayout jPanel28Layout = new javax.swing.GroupLayout(jPanel28);
        jPanel28.setLayout(jPanel28Layout);
        jPanel28Layout.setHorizontalGroup(
            jPanel28Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel28Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane10, javax.swing.GroupLayout.DEFAULT_SIZE, 336, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel28Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jPanel29, javax.swing.GroupLayout.PREFERRED_SIZE, 81, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jPanel30, javax.swing.GroupLayout.PREFERRED_SIZE, 81, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jScrollPane11, javax.swing.GroupLayout.PREFERRED_SIZE, 145, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );
        jPanel28Layout.setVerticalGroup(
            jPanel28Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel28Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel28Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane10, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 483, Short.MAX_VALUE)
                    .addGroup(jPanel28Layout.createSequentialGroup()
                        .addComponent(jPanel29, javax.swing.GroupLayout.PREFERRED_SIZE, 163, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 212, Short.MAX_VALUE)
                        .addComponent(jPanel30, javax.swing.GroupLayout.PREFERRED_SIZE, 108, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(jScrollPane11, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 483, Short.MAX_VALUE))
                .addContainerGap())
        );

        jLabel36.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/class-schedule.gif"))); // NOI18N

        jMenuStartFile4.setMnemonic('F');
        jMenuStartFile4.setText("File   ");

        jMenuItemStartNew4.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_N, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemStartNew4.setMnemonic('N');
        jMenuItemStartNew4.setText("New");
        jMenuItemStartNew4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemStartNew4ActionPerformed(evt);
            }
        });
        jMenuStartFile4.add(jMenuItemStartNew4);

        jMenuItemStartOpen4.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemStartOpen4.setMnemonic('O');
        jMenuItemStartOpen4.setText("Open");
        jMenuItemStartOpen4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemStartOpen4ActionPerformed(evt);
            }
        });
        jMenuStartFile4.add(jMenuItemStartOpen4);
        jMenuStartFile4.add(jSeparator9);

        jMenuItemStartSave4.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemStartSave4.setMnemonic('S');
        jMenuItemStartSave4.setText("Save");
        jMenuItemStartSave4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemStartSave4ActionPerformed(evt);
            }
        });
        jMenuStartFile4.add(jMenuItemStartSave4);

        jMenuItemStartSaveas4.setText("Save As");
        jMenuItemStartSaveas4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemStartSaveas4ActionPerformed(evt);
            }
        });
        jMenuStartFile4.add(jMenuItemStartSaveas4);
        jMenuStartFile4.add(jSeparator10);

        jMenuItemStartExit4.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_X, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemStartExit4.setMnemonic('x');
        jMenuItemStartExit4.setText("Exit");
        jMenuItemStartExit4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemStartExit4ActionPerformed(evt);
            }
        });
        jMenuStartFile4.add(jMenuItemStartExit4);

        jMenuBarStart4.add(jMenuStartFile4);

        jMenuStartView4.setMnemonic('m');
        jMenuStartView4.setText("Menu   ");

        jMenuItemStartWelcome4.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_W, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemStartWelcome4.setMnemonic('w');
        jMenuItemStartWelcome4.setText("Welcome Menu");
        jMenuItemStartWelcome4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemStartWelcome4ActionPerformed(evt);
            }
        });
        jMenuStartView4.add(jMenuItemStartWelcome4);

        jMenuItemStartMode4.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_M, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemStartMode4.setMnemonic('m');
        jMenuItemStartMode4.setText("Mode Menu");
        jMenuItemStartMode4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemStartMode4ActionPerformed(evt);
            }
        });
        jMenuStartView4.add(jMenuItemStartMode4);
        jMenuStartView4.add(jSeparator22);

        jMenuItem5.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_U, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem5.setMnemonic('u');
        jMenuItem5.setText("Profile Menu");
        jMenuItem5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem5ActionPerformed(evt);
            }
        });
        jMenuStartView4.add(jMenuItem5);

        jMenuItemQPResults8.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_Q, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemQPResults8.setMnemonic('q');
        jMenuItemQPResults8.setText("Quaterly Plan Menu");
        jMenuItemQPResults8.setEnabled(false);
        jMenuItemQPResults8.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemQPResults8ActionPerformed(evt);
            }
        });
        jMenuStartView4.add(jMenuItemQPResults8);

        jMenuItemAPResults8.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_A, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemAPResults8.setMnemonic('a');
        jMenuItemAPResults8.setText("Academic Plan Menu");
        jMenuItemAPResults8.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemAPResults8ActionPerformed(evt);
            }
        });
        jMenuStartView4.add(jMenuItemAPResults8);

        jMenuBarStart4.add(jMenuStartView4);

        jMenuStartInfo4.setMnemonic('h');
        jMenuStartInfo4.setText("Help");

        jMenuItemStartHelp4.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F1, 0));
        jMenuItemStartHelp4.setText("Help");
        jMenuItemStartHelp4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemStartHelp4ActionPerformed(evt);
            }
        });
        jMenuStartInfo4.add(jMenuItemStartHelp4);

        jMenuItemStartAuthor4.setMnemonic('a');
        jMenuItemStartAuthor4.setText("About");
        jMenuItemStartAuthor4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemStartAuthor4ActionPerformed(evt);
            }
        });
        jMenuStartInfo4.add(jMenuItemStartAuthor4);

        jMenuBarStart4.add(jMenuStartInfo4);

        jFrameTime.setJMenuBar(jMenuBarStart4);

        javax.swing.GroupLayout jFrameTimeLayout = new javax.swing.GroupLayout(jFrameTime.getContentPane());
        jFrameTime.getContentPane().setLayout(jFrameTimeLayout);
        jFrameTimeLayout.setHorizontalGroup(
            jFrameTimeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jFrameTimeLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jFrameTimeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jPanel23, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(jFrameTimeLayout.createSequentialGroup()
                        .addComponent(jPanel28, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jFrameTimeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addGroup(jFrameTimeLayout.createSequentialGroup()
                                .addComponent(jPanel25, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jLabel36))
                            .addComponent(jPanel22, 0, 426, Short.MAX_VALUE))))
                .addGap(29, 29, 29))
        );
        jFrameTimeLayout.setVerticalGroup(
            jFrameTimeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jFrameTimeLayout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(jFrameTimeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jFrameTimeLayout.createSequentialGroup()
                        .addGroup(jFrameTimeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(jPanel25, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jLabel36, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jPanel22, javax.swing.GroupLayout.PREFERRED_SIZE, 423, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(jPanel28, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel23, javax.swing.GroupLayout.PREFERRED_SIZE, 73, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(195, 195, 195))
        );

        jFrameQuarterlyPlan.setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        jFrameQuarterlyPlan.setTitle(TITLE+" (Quarterly Plan Results)");
        jFrameQuarterlyPlan.setMinimumSize(new java.awt.Dimension(1000, 715));
        jFrameQuarterlyPlan.setResizable(false);

        jButtonQuarterlyPlanNext.setFont(new java.awt.Font("Tahoma", 0, 18));
        jButtonQuarterlyPlanNext.setText("Close");
        jButtonQuarterlyPlanNext.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        jButtonQuarterlyPlanNext.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonQuarterlyPlanNextActionPerformed(evt);
            }
        });

        jButton14.setFont(new java.awt.Font("Times New Roman", 3, 14));
        jButton14.setForeground(new java.awt.Color(255, 0, 0));
        jButton14.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/back_blue_1.png"))); // NOI18N
        jButton14.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        jButton14.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton14ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel26Layout = new javax.swing.GroupLayout(jPanel26);
        jPanel26.setLayout(jPanel26Layout);
        jPanel26Layout.setHorizontalGroup(
            jPanel26Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel26Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jButton14, javax.swing.GroupLayout.PREFERRED_SIZE, 103, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 746, Short.MAX_VALUE)
                .addComponent(jButtonQuarterlyPlanNext, javax.swing.GroupLayout.PREFERRED_SIZE, 103, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );
        jPanel26Layout.setVerticalGroup(
            jPanel26Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel26Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel26Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButton14, javax.swing.GroupLayout.DEFAULT_SIZE, 69, Short.MAX_VALUE)
                    .addComponent(jButtonQuarterlyPlanNext, javax.swing.GroupLayout.PREFERRED_SIZE, 69, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap())
        );

        jPanel27.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Class schedules for the quarter...", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Times New Roman", 1, 18))); // NOI18N
        jPanel27.setPreferredSize(new java.awt.Dimension(923, 609));

        jTableQuarterly1.setAutoCreateRowSorter(true);
        jTableQuarterly1.setFont(new java.awt.Font("Tahoma", 0, 15));
        jTableQuarterly1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Course No.", "Course Title", "Date", "Time"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false, false, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        jTableQuarterly1.setRowHeight(21);
        jTableQuarterly1.setRowSelectionAllowed(false);
        jTableQuarterly1.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTableQuarterly1MouseClicked(evt);
            }
            public void mousePressed(java.awt.event.MouseEvent evt) {
                jTableQuarterly1MousePressed(evt);
            }
            public void mouseReleased(java.awt.event.MouseEvent evt) {
                jTableQuarterly1MouseReleased(evt);
            }
        });
        jScrollPane7.setViewportView(jTableQuarterly1);

        jLabel37.setFont(new java.awt.Font("Tahoma", 1, 14));
        jLabel37.setText("Schedule 1 (User Ranking):");

        jLabel38.setFont(new java.awt.Font("Tahoma", 1, 14));
        jLabel38.setText("Schedule 2 (Inverse User Ranking):");

        jTableQuarterly2.setAutoCreateRowSorter(true);
        jTableQuarterly2.setFont(new java.awt.Font("Tahoma", 0, 15));
        jTableQuarterly2.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Course No.", "Course Title", "Date", "Time"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false, false, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        jTableQuarterly2.setRowHeight(21);
        jTableQuarterly2.setRowSelectionAllowed(false);
        jTableQuarterly2.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseReleased(java.awt.event.MouseEvent evt) {
                jTableQuarterly2MouseReleased(evt);
            }
        });
        jScrollPane8.setViewportView(jTableQuarterly2);

        jLabel39.setFont(new java.awt.Font("Tahoma", 1, 14));
        jLabel39.setText("Schedule 3 (Random):");

        jTableQuarterly3.setAutoCreateRowSorter(true);
        jTableQuarterly3.setFont(new java.awt.Font("Tahoma", 0, 15));
        jTableQuarterly3.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Course No.", "Course Title", "Date", "Time"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false, false, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        jTableQuarterly3.setRowHeight(21);
        jTableQuarterly3.setRowSelectionAllowed(false);
        jTableQuarterly3.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseReleased(java.awt.event.MouseEvent evt) {
                jTableQuarterly3MouseReleased(evt);
            }
        });
        jScrollPane9.setViewportView(jTableQuarterly3);

        javax.swing.GroupLayout jPanel27Layout = new javax.swing.GroupLayout(jPanel27);
        jPanel27.setLayout(jPanel27Layout);
        jPanel27Layout.setHorizontalGroup(
            jPanel27Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel27Layout.createSequentialGroup()
                .addGroup(jPanel27Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel27Layout.createSequentialGroup()
                        .addGap(46, 46, 46)
                        .addComponent(jLabel47))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel27Layout.createSequentialGroup()
                        .addGap(24, 24, 24)
                        .addGroup(jPanel27Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel39)
                            .addComponent(jLabel37)
                            .addComponent(jScrollPane9, javax.swing.GroupLayout.DEFAULT_SIZE, 922, Short.MAX_VALUE)
                            .addComponent(jScrollPane7, javax.swing.GroupLayout.DEFAULT_SIZE, 922, Short.MAX_VALUE)))
                    .addGroup(jPanel27Layout.createSequentialGroup()
                        .addGap(24, 24, 24)
                        .addGroup(jPanel27Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jScrollPane8, javax.swing.GroupLayout.DEFAULT_SIZE, 922, Short.MAX_VALUE)
                            .addGroup(jPanel27Layout.createSequentialGroup()
                                .addComponent(jLabel38)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 678, Short.MAX_VALUE)))))
                .addContainerGap())
        );
        jPanel27Layout.setVerticalGroup(
            jPanel27Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel27Layout.createSequentialGroup()
                .addComponent(jLabel37)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane7, javax.swing.GroupLayout.PREFERRED_SIZE, 134, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jLabel38)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane8, javax.swing.GroupLayout.PREFERRED_SIZE, 135, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jLabel39)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane9, javax.swing.GroupLayout.PREFERRED_SIZE, 135, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel47)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jMenuStartFile5.setMnemonic('F');
        jMenuStartFile5.setText("File   ");

        jMenuItemStartNew5.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_N, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemStartNew5.setMnemonic('N');
        jMenuItemStartNew5.setText("New");
        jMenuItemStartNew5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemStartNew5ActionPerformed(evt);
            }
        });
        jMenuStartFile5.add(jMenuItemStartNew5);

        jMenuItemStartOpen5.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemStartOpen5.setMnemonic('O');
        jMenuItemStartOpen5.setText("Open");
        jMenuItemStartOpen5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemStartOpen5ActionPerformed(evt);
            }
        });
        jMenuStartFile5.add(jMenuItemStartOpen5);
        jMenuStartFile5.add(jSeparator11);

        jMenuItemStartSave5.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemStartSave5.setMnemonic('S');
        jMenuItemStartSave5.setText("Save");
        jMenuItemStartSave5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemStartSave5ActionPerformed(evt);
            }
        });
        jMenuStartFile5.add(jMenuItemStartSave5);

        jMenuItemStartSaveas5.setText("Save As");
        jMenuItemStartSaveas5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemStartSaveas5ActionPerformed(evt);
            }
        });
        jMenuStartFile5.add(jMenuItemStartSaveas5);
        jMenuStartFile5.add(jSeparator12);

        jMenuItemStartExit5.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_X, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemStartExit5.setMnemonic('x');
        jMenuItemStartExit5.setText("Exit");
        jMenuItemStartExit5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemStartExit5ActionPerformed(evt);
            }
        });
        jMenuStartFile5.add(jMenuItemStartExit5);

        jMenuBarStart5.add(jMenuStartFile5);

        jMenuStartView5.setMnemonic('m');
        jMenuStartView5.setText("Menu   ");

        jMenuItemStartWelcome5.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_W, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemStartWelcome5.setMnemonic('w');
        jMenuItemStartWelcome5.setText("Welcome Menu");
        jMenuItemStartWelcome5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemStartWelcome5ActionPerformed(evt);
            }
        });
        jMenuStartView5.add(jMenuItemStartWelcome5);

        jMenuItemStartMode5.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_M, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemStartMode5.setMnemonic('m');
        jMenuItemStartMode5.setText("Mode Menu");
        jMenuItemStartMode5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemStartMode5ActionPerformed(evt);
            }
        });
        jMenuStartView5.add(jMenuItemStartMode5);
        jMenuStartView5.add(jSeparator17);

        jMenuItem6.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_U, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem6.setMnemonic('u');
        jMenuItem6.setText("Profile Menu");
        jMenuItem6.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem6ActionPerformed(evt);
            }
        });
        jMenuStartView5.add(jMenuItem6);

        jMenuItemQPResults3.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_Q, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemQPResults3.setMnemonic('q');
        jMenuItemQPResults3.setText("Quaterly Plan Menu");
        jMenuItemQPResults3.setEnabled(false);
        jMenuItemQPResults3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemQPResults3ActionPerformed(evt);
            }
        });
        jMenuStartView5.add(jMenuItemQPResults3);

        jMenuItemAPResults3.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_A, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemAPResults3.setMnemonic('a');
        jMenuItemAPResults3.setText("Academic Plan Menu");
        jMenuItemAPResults3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemAPResults3ActionPerformed(evt);
            }
        });
        jMenuStartView5.add(jMenuItemAPResults3);

        jMenuBarStart5.add(jMenuStartView5);

        jMenuStartInfo5.setMnemonic('h');
        jMenuStartInfo5.setText("Help");

        jMenuItemStartHelp5.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F1, 0));
        jMenuItemStartHelp5.setText("Help");
        jMenuItemStartHelp5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemStartHelp5ActionPerformed(evt);
            }
        });
        jMenuStartInfo5.add(jMenuItemStartHelp5);

        jMenuItemStartAuthor5.setMnemonic('a');
        jMenuItemStartAuthor5.setText("About");
        jMenuItemStartAuthor5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemStartAuthor5ActionPerformed(evt);
            }
        });
        jMenuStartInfo5.add(jMenuItemStartAuthor5);

        jMenuBarStart5.add(jMenuStartInfo5);

        jFrameQuarterlyPlan.setJMenuBar(jMenuBarStart5);

        javax.swing.GroupLayout jFrameQuarterlyPlanLayout = new javax.swing.GroupLayout(jFrameQuarterlyPlan.getContentPane());
        jFrameQuarterlyPlan.getContentPane().setLayout(jFrameQuarterlyPlanLayout);
        jFrameQuarterlyPlanLayout.setHorizontalGroup(
            jFrameQuarterlyPlanLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jFrameQuarterlyPlanLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jFrameQuarterlyPlanLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jPanel27, javax.swing.GroupLayout.PREFERRED_SIZE, 958, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jPanel26, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );
        jFrameQuarterlyPlanLayout.setVerticalGroup(
            jFrameQuarterlyPlanLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jFrameQuarterlyPlanLayout.createSequentialGroup()
                .addGap(20, 20, 20)
                .addComponent(jPanel27, javax.swing.GroupLayout.PREFERRED_SIZE, 541, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(jPanel26, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(23, 23, 23))
        );

        jFrameAcademicResults.setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        jFrameAcademicResults.setTitle(TITLE+" (Academic Plan Results)");
        jFrameAcademicResults.setMinimumSize(new java.awt.Dimension(1004, 770));
        jFrameAcademicResults.setResizable(false);

        jButtonAcdemicResultsFinish.setFont(new java.awt.Font("Tahoma", 0, 18));
        jButtonAcdemicResultsFinish.setText("Close");
        jButtonAcdemicResultsFinish.setToolTipText("Mode Selection Menu.");
        jButtonAcdemicResultsFinish.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        jButtonAcdemicResultsFinish.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonAcdemicResultsFinishActionPerformed(evt);
            }
        });

        jButtonAcademicResiltsBack.setFont(new java.awt.Font("Times New Roman", 3, 14));
        jButtonAcademicResiltsBack.setForeground(new java.awt.Color(255, 0, 0));
        jButtonAcademicResiltsBack.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/back_blue_1.png"))); // NOI18N
        jButtonAcademicResiltsBack.setToolTipText("Update Plan Menu.");
        jButtonAcademicResiltsBack.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        jButtonAcademicResiltsBack.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonAcademicResiltsBackActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel12Layout = new javax.swing.GroupLayout(jPanel12);
        jPanel12.setLayout(jPanel12Layout);
        jPanel12Layout.setHorizontalGroup(
            jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel12Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jButtonAcademicResiltsBack, javax.swing.GroupLayout.PREFERRED_SIZE, 103, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 779, Short.MAX_VALUE)
                .addComponent(jButtonAcdemicResultsFinish, javax.swing.GroupLayout.PREFERRED_SIZE, 103, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );
        jPanel12Layout.setVerticalGroup(
            jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jButtonAcdemicResultsFinish, javax.swing.GroupLayout.DEFAULT_SIZE, 67, Short.MAX_VALUE)
            .addComponent(jButtonAcademicResiltsBack, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 67, Short.MAX_VALUE)
        );

        jPanel8.setLayout(new java.awt.GridLayout(4, 3, 20, 20));

        jTableRow1Col1.setAutoCreateRowSorter(true);
        jTableRow1Col1.setBackground(new java.awt.Color(204, 204, 204));
        jTableRow1Col1.setFont(new java.awt.Font("Tahoma", 0, 15));
        jTableRow1Col1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null},
                {null},
                {null},
                {null},
                {null},
                {null}
            },
            new String [] {
                "Fall"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        jTableRow1Col1.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_ALL_COLUMNS);
        jTableRow1Col1.setEnabled(false);
        jTableRow1Col1.setRowHeight(21);
        jScrollPane12.setViewportView(jTableRow1Col1);

        jPanel8.add(jScrollPane12);

        jTableRow1Col2.setAutoCreateRowSorter(true);
        jTableRow1Col2.setBackground(new java.awt.Color(204, 204, 204));
        jTableRow1Col2.setFont(new java.awt.Font("Tahoma", 0, 15));
        jTableRow1Col2.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null},
                {null},
                {null},
                {null},
                {null},
                {null}
            },
            new String [] {
                "Winter"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        jTableRow1Col2.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_ALL_COLUMNS);
        jTableRow1Col2.setEnabled(false);
        jTableRow1Col2.setRowHeight(21);
        jScrollPane13.setViewportView(jTableRow1Col2);

        jPanel8.add(jScrollPane13);

        jTableRow1Col3.setAutoCreateRowSorter(true);
        jTableRow1Col3.setBackground(new java.awt.Color(204, 204, 204));
        jTableRow1Col3.setFont(new java.awt.Font("Tahoma", 0, 15));
        jTableRow1Col3.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null},
                {null},
                {null},
                {null},
                {null},
                {null}
            },
            new String [] {
                "Spring"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        jTableRow1Col3.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_ALL_COLUMNS);
        jTableRow1Col3.setEnabled(false);
        jTableRow1Col3.setRowHeight(21);
        jScrollPane14.setViewportView(jTableRow1Col3);

        jPanel8.add(jScrollPane14);

        jTableRow2Col1.setAutoCreateRowSorter(true);
        jTableRow2Col1.setFont(new java.awt.Font("Tahoma", 0, 15));
        jTableRow2Col1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null},
                {null},
                {null},
                {null},
                {null},
                {null}
            },
            new String [] {
                "Fall"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        jTableRow2Col1.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_ALL_COLUMNS);
        jTableRow2Col1.setEnabled(false);
        jTableRow2Col1.setRowHeight(21);
        jScrollPane15.setViewportView(jTableRow2Col1);

        jPanel8.add(jScrollPane15);

        jTableRow2Col2.setAutoCreateRowSorter(true);
        jTableRow2Col2.setFont(new java.awt.Font("Tahoma", 0, 15));
        jTableRow2Col2.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null},
                {null},
                {null},
                {null},
                {null},
                {null}
            },
            new String [] {
                "Winter"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        jTableRow2Col2.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_ALL_COLUMNS);
        jTableRow2Col2.setEnabled(false);
        jTableRow2Col2.setRowHeight(21);
        jScrollPane16.setViewportView(jTableRow2Col2);

        jPanel8.add(jScrollPane16);

        jTableRow2Col3.setAutoCreateRowSorter(true);
        jTableRow2Col3.setFont(new java.awt.Font("Tahoma", 0, 15));
        jTableRow2Col3.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null},
                {null},
                {null},
                {null},
                {null},
                {null}
            },
            new String [] {
                "Spring"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        jTableRow2Col3.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_ALL_COLUMNS);
        jTableRow2Col3.setEnabled(false);
        jTableRow2Col3.setRowHeight(21);
        jScrollPane17.setViewportView(jTableRow2Col3);

        jPanel8.add(jScrollPane17);

        jTableRow3Col1.setAutoCreateRowSorter(true);
        jTableRow3Col1.setBackground(new java.awt.Color(204, 204, 204));
        jTableRow3Col1.setFont(new java.awt.Font("Tahoma", 0, 15));
        jTableRow3Col1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null},
                {null},
                {null},
                {null},
                {null},
                {null}
            },
            new String [] {
                "Fall"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        jTableRow3Col1.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_ALL_COLUMNS);
        jTableRow3Col1.setEnabled(false);
        jTableRow3Col1.setRowHeight(21);
        jScrollPane18.setViewportView(jTableRow3Col1);

        jPanel8.add(jScrollPane18);

        jTableRow3Col2.setAutoCreateRowSorter(true);
        jTableRow3Col2.setBackground(new java.awt.Color(204, 204, 204));
        jTableRow3Col2.setFont(new java.awt.Font("Tahoma", 0, 15));
        jTableRow3Col2.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null},
                {null},
                {null},
                {null},
                {null},
                {null}
            },
            new String [] {
                "Winter"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        jTableRow3Col2.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_ALL_COLUMNS);
        jTableRow3Col2.setEnabled(false);
        jTableRow3Col2.setRowHeight(21);
        jScrollPane19.setViewportView(jTableRow3Col2);

        jPanel8.add(jScrollPane19);

        jTableRow3Col3.setAutoCreateRowSorter(true);
        jTableRow3Col3.setBackground(new java.awt.Color(204, 204, 204));
        jTableRow3Col3.setFont(new java.awt.Font("Tahoma", 0, 15));
        jTableRow3Col3.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null},
                {null},
                {null},
                {null},
                {null},
                {null}
            },
            new String [] {
                "Spring"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        jTableRow3Col3.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_ALL_COLUMNS);
        jTableRow3Col3.setEnabled(false);
        jTableRow3Col3.setRowHeight(21);
        jScrollPane20.setViewportView(jTableRow3Col3);

        jPanel8.add(jScrollPane20);

        jTableRow4Col1.setAutoCreateRowSorter(true);
        jTableRow4Col1.setFont(new java.awt.Font("Tahoma", 0, 15));
        jTableRow4Col1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null},
                {null},
                {null},
                {null},
                {null},
                {null}
            },
            new String [] {
                "Fall"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        jTableRow4Col1.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_ALL_COLUMNS);
        jTableRow4Col1.setEnabled(false);
        jTableRow4Col1.setRowHeight(21);
        jScrollPane21.setViewportView(jTableRow4Col1);

        jPanel8.add(jScrollPane21);

        jTableRow4Col2.setAutoCreateRowSorter(true);
        jTableRow4Col2.setFont(new java.awt.Font("Tahoma", 0, 15));
        jTableRow4Col2.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null},
                {null},
                {null},
                {null},
                {null},
                {null}
            },
            new String [] {
                "Winter"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        jTableRow4Col2.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_ALL_COLUMNS);
        jTableRow4Col2.setEnabled(false);
        jTableRow4Col2.setRowHeight(21);
        jScrollPane22.setViewportView(jTableRow4Col2);

        jPanel8.add(jScrollPane22);

        jTableRow4Col3.setAutoCreateRowSorter(true);
        jTableRow4Col3.setFont(new java.awt.Font("Tahoma", 0, 15));
        jTableRow4Col3.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null},
                {null},
                {null},
                {null},
                {null},
                {null}
            },
            new String [] {
                "Spring"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        jTableRow4Col3.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_ALL_COLUMNS);
        jTableRow4Col3.setEnabled(false);
        jTableRow4Col3.setRowHeight(21);
        jScrollPane23.setViewportView(jTableRow4Col3);

        jPanel8.add(jScrollPane23);

        jLabelResultName.setFont(new java.awt.Font("Times New Roman", 3, 36));
        jLabelResultName.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabelResultName.setText("Welcome to your Academic Plan.");
        jLabelResultName.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);

        jMenuStartFile6.setMnemonic('F');
        jMenuStartFile6.setText("File   ");

        jMenuItemStartNew6.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_N, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemStartNew6.setMnemonic('N');
        jMenuItemStartNew6.setText("New");
        jMenuItemStartNew6.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemStartNew6ActionPerformed(evt);
            }
        });
        jMenuStartFile6.add(jMenuItemStartNew6);

        jMenuItemStartOpen6.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemStartOpen6.setMnemonic('O');
        jMenuItemStartOpen6.setText("Open");
        jMenuItemStartOpen6.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemStartOpen6ActionPerformed(evt);
            }
        });
        jMenuStartFile6.add(jMenuItemStartOpen6);
        jMenuStartFile6.add(jSeparator13);

        jMenuItemStartSave6.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemStartSave6.setMnemonic('S');
        jMenuItemStartSave6.setText("Save");
        jMenuItemStartSave6.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemStartSave6ActionPerformed(evt);
            }
        });
        jMenuStartFile6.add(jMenuItemStartSave6);

        jMenuItemStartSaveas6.setText("Save As");
        jMenuItemStartSaveas6.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemStartSaveas6ActionPerformed(evt);
            }
        });
        jMenuStartFile6.add(jMenuItemStartSaveas6);
        jMenuStartFile6.add(jSeparator14);

        jMenuItemStartExit6.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_X, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemStartExit6.setMnemonic('x');
        jMenuItemStartExit6.setText("Exit");
        jMenuItemStartExit6.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemStartExit6ActionPerformed(evt);
            }
        });
        jMenuStartFile6.add(jMenuItemStartExit6);

        jMenuBarStart6.add(jMenuStartFile6);

        jMenuStartView6.setMnemonic('m');
        jMenuStartView6.setText("Menu   ");

        jMenuItemStartWelcome6.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_W, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemStartWelcome6.setMnemonic('w');
        jMenuItemStartWelcome6.setText("Welcome Menu");
        jMenuItemStartWelcome6.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemStartWelcome6ActionPerformed(evt);
            }
        });
        jMenuStartView6.add(jMenuItemStartWelcome6);

        jMenuItemStartMode6.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_M, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemStartMode6.setMnemonic('m');
        jMenuItemStartMode6.setText("Mode Menu");
        jMenuItemStartMode6.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemStartMode6ActionPerformed(evt);
            }
        });
        jMenuStartView6.add(jMenuItemStartMode6);
        jMenuStartView6.add(jSeparator18);

        jMenuItem7.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_U, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem7.setMnemonic('u');
        jMenuItem7.setText("Profile Menu");
        jMenuItem7.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem7ActionPerformed(evt);
            }
        });
        jMenuStartView6.add(jMenuItem7);

        jMenuItemQPResults4.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_Q, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemQPResults4.setMnemonic('q');
        jMenuItemQPResults4.setText("Quaterly Plan Results");
        jMenuItemQPResults4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemQPResults4ActionPerformed(evt);
            }
        });
        jMenuStartView6.add(jMenuItemQPResults4);

        jMenuItemAPResults4.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_R, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemAPResults4.setMnemonic('r');
        jMenuItemAPResults4.setText("Academic Plan Results");
        jMenuItemAPResults4.setEnabled(false);
        jMenuItemAPResults4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemAPResults4ActionPerformed(evt);
            }
        });
        jMenuStartView6.add(jMenuItemAPResults4);

        jMenuBarStart6.add(jMenuStartView6);

        jMenuStartInfo6.setMnemonic('h');
        jMenuStartInfo6.setText("Help");

        jMenuItemStartHelp6.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F1, 0));
        jMenuItemStartHelp6.setText("Help");
        jMenuItemStartHelp6.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemStartHelp6ActionPerformed(evt);
            }
        });
        jMenuStartInfo6.add(jMenuItemStartHelp6);

        jMenuItemStartAuthor6.setMnemonic('a');
        jMenuItemStartAuthor6.setText("About");
        jMenuItemStartAuthor6.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemStartAuthor6ActionPerformed(evt);
            }
        });
        jMenuStartInfo6.add(jMenuItemStartAuthor6);

        jMenuBarStart6.add(jMenuStartInfo6);

        jFrameAcademicResults.setJMenuBar(jMenuBarStart6);

        javax.swing.GroupLayout jFrameAcademicResultsLayout = new javax.swing.GroupLayout(jFrameAcademicResults.getContentPane());
        jFrameAcademicResults.getContentPane().setLayout(jFrameAcademicResultsLayout);
        jFrameAcademicResultsLayout.setHorizontalGroup(
            jFrameAcademicResultsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jFrameAcademicResultsLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jFrameAcademicResultsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabelResultName, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 1009, Short.MAX_VALUE)
                    .addComponent(jPanel8, javax.swing.GroupLayout.DEFAULT_SIZE, 1009, Short.MAX_VALUE)
                    .addComponent(jPanel12, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );
        jFrameAcademicResultsLayout.setVerticalGroup(
            jFrameAcademicResultsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jFrameAcademicResultsLayout.createSequentialGroup()
                .addContainerGap(19, Short.MAX_VALUE)
                .addComponent(jLabelResultName)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel8, javax.swing.GroupLayout.PREFERRED_SIZE, 562, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jPanel12, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(16, 16, 16))
        );

        jPopupMenuPrint.setEnabled(false);

        jMenuItemPrint.setText("Print");
        jMenuItemPrint.setToolTipText("Print Academic Plan");
        jMenuItemPrint.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemPrintActionPerformed(evt);
            }
        });
        jPopupMenuPrint.add(jMenuItemPrint);

        jFrameHelp.setTitle(TITLE+" (Help Menu) ");
        jFrameHelp.setMinimumSize(new java.awt.Dimension(715, 745));
        jFrameHelp.setResizable(false);

        jEditorPane1.setContentType("text/html");
        jEditorPane1.setEditable(false);
        jEditorPane1.setText("<div>\n<a href=\"#1\" title=\"Difference between New User and Open/Load Profile\">Different between New User and Open/Load Profile</a> <br />\n<a href=\"#2\" title=\"Update Profile\">How to update your profile?</a><br />\n<a href=\"#3\" title=\"What is the Mode Menu and what are your options over there?\">Mode Menu</a><br />\n<a href=\"#4\" title=\"How can you generate an Academic Plan?\">Academic Plan</a>  <br />\n<a href=\"#5\" title=\"How can you generate an Quarterly Plan?\">Quarterly Plan</a>  <br />\n</div>\n<br />\n<div class=\"body-list\"><a name=\"1\"><strong>Difference between New User and Open/Load Profile?</strong></a> </div>\n<div class=\"body-row\">\n\n If you already have a saved profile and you want to change or view any of your previous information and reports, select Open/Load Profile, if this is your first time using this application and you don't have any saved profile, you can select New User and save your profile anytime from Menu/Save or Menu/Save As<br />\n<br />\n<div class=\"body-list\"><a name=\"2\"><strong>Update Profile</strong></a></div> \n<div class=\"body-row\">In this form you can enter your name, select major, degree program, and the courses you complted so far. The information here is used for generating academic plan and quarterly plan.  </div>\n<br />\n<br />\n<div class=\"body-list\"><a name=\"3\"><strong>Mode Menu</strong></a></div> \n<div class=\"body-row\">In this form, you can choose between updating your profile, go to quarterly plan menu to generate your next quarter plan or go to Academic Plan menu, to generate your academic plan. </div>\n<br />\n<br />\n<div class=\"body-list\"><a name=\"4\"><strong>Academic Plan</strong></a> </div> \n<div class=\"body-row\">You can select the elective courses you want to take to get your degree and also choose the appropriate GE requirments and click on the next button and get your academic plan base on your selection.</div>\n<br />\n<br />\n<div class=\"body-list\"><a name=\"5\"><strong>Quarterly Plan</strong></a> </div> \n<div class=\"body-row\">You can select the classes you planning to take next quarter and select the number of units you are planning to have for your next quarter. Aslo the date and times you can go to school and click on next button. On the next page, based on your selection, three different schedules using different algorithms will be generated that you can choose each one of them.</div>\n<br />\n<br />");
        jEditorPane1.addComponentListener(new java.awt.event.ComponentAdapter() {
            public void componentShown(java.awt.event.ComponentEvent evt) {
                jEditorPane1ComponentShown(evt);
            }
        });
        jEditorPane1.addContainerListener(new java.awt.event.ContainerAdapter() {
            public void componentAdded(java.awt.event.ContainerEvent evt) {
                jEditorPane1ComponentAdded(evt);
            }
        });
        jScrollPane26.setViewportView(jEditorPane1);

        javax.swing.GroupLayout jFrameHelpLayout = new javax.swing.GroupLayout(jFrameHelp.getContentPane());
        jFrameHelp.getContentPane().setLayout(jFrameHelpLayout);
        jFrameHelpLayout.setHorizontalGroup(
            jFrameHelpLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jFrameHelpLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane26, javax.swing.GroupLayout.PREFERRED_SIZE, 691, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        jFrameHelpLayout.setVerticalGroup(
            jFrameHelpLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jFrameHelpLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane26, javax.swing.GroupLayout.DEFAULT_SIZE, 633, Short.MAX_VALUE)
                .addContainerGap())
        );

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle(TITLE);

        javax.swing.GroupLayout jPanel6Layout = new javax.swing.GroupLayout(jPanel6);
        jPanel6.setLayout(jPanel6Layout);
        jPanel6Layout.setHorizontalGroup(
            jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 28, Short.MAX_VALUE)
        );
        jPanel6Layout.setVerticalGroup(
            jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 26, Short.MAX_VALUE)
        );

        jScrollPane24.setViewportView(jListClear);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(225, 225, 225)
                        .addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jScrollPane24, javax.swing.GroupLayout.PREFERRED_SIZE, 18, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(59, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane24, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 14, Short.MAX_VALUE)
                .addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(120, 120, 120))
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

private void jButtonStartNewActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonStartNewActionPerformed
    loadMajorList();
    jFrameUpdate.setVisible(true);
    jFrameStart.setVisible(false);
    resetAllFrame();
}//GEN-LAST:event_jButtonStartNewActionPerformed

private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton5ActionPerformed
    readjFrameUpdate();
    jFrameUpdate.setVisible(false);
    jFrameStart.setVisible(true);
}//GEN-LAST:event_jButton5ActionPerformed

private void jButton10ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton10ActionPerformed
    readjFrameInterests();
    jFrameInterests.setVisible(false);
    jFrameMode.setVisible(true);
}//GEN-LAST:event_jButton10ActionPerformed

private void jButtonUpdateNextActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonUpdateNextActionPerformed
    readjFrameUpdate();
    jFrameUpdate.setVisible(false);
    jFrameMode.setVisible(true);
}//GEN-LAST:event_jButtonUpdateNextActionPerformed
   
private void jButtonModeUpdateActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonModeUpdateActionPerformed
    jFrameUpdate.setVisible(true);
    jFrameMode.setVisible(false);
}//GEN-LAST:event_jButtonModeUpdateActionPerformed

private void jButtonInterestsNextActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonInterestsNextActionPerformed
    readjFrameInterests();
    if(true){ //checkInterestReq()){
        updateJFrameAcademicResults(academicPlan1());
        jFrameInterests.setVisible(false);
        jFrameAcademicResults.setVisible(true);
    }else{
        ListModel model = jListInterestInterest.getModel();
        int units = model.getSize()*4;
        ObjMajor major = db.getMajor((String)jComboBoxUpdateMajor.getSelectedItem(), UNDG);
        units = major.getElectiveunits()-units;
        javax.swing.JOptionPane.showMessageDialog(null, 
                    "Please select ["+units+"] units worth of \nelective courses "+
                    "located on the left-hand side.");
    }
}//GEN-LAST:event_jButtonInterestsNextActionPerformed

private void jButtonStartLoadActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonStartLoadActionPerformed
    javax.swing.JFileChooser jFileChooserOpen = new javax.swing.JFileChooser();
    int result = jFileChooserOpen.showOpenDialog(null);
    if(result == javax.swing.JFileChooser.APPROVE_OPTION){
        if(jFileChooserOpen.getSelectedFile()!=null) {
            File file = jFileChooserOpen.getSelectedFile();
            loadProfile(file.getPath());
            jFrameStart.setVisible(false);
            jFrameMode.setVisible(true);
        }
    }
}//GEN-LAST:event_jButtonStartLoadActionPerformed

private void jComboBoxUpdateMajorActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jComboBoxUpdateMajorActionPerformed
    updateMajorCourseList();
}//GEN-LAST:event_jComboBoxUpdateMajorActionPerformed

private void jComboBoxUpdateMajorPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_jComboBoxUpdateMajorPropertyChange
    updateMajorCourseList();
    initInterestFrame();
    loadJListTime();
}//GEN-LAST:event_jComboBoxUpdateMajorPropertyChange

private void jButtonModeQuarterlyActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonModeQuarterlyActionPerformed
    loadJListTime();
    jFrameMode.setVisible(false);
    jFrameTime.setVisible(true);
}//GEN-LAST:event_jButtonModeQuarterlyActionPerformed

private void jButtonModeAcademicActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonModeAcademicActionPerformed
    initInterestFrame();
    jFrameMode.setVisible(false);
    jFrameInterests.setVisible(true);
}//GEN-LAST:event_jButtonModeAcademicActionPerformed

private void jButtonBookInfo1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonBookInfo1ActionPerformed
    jFrameDescription.setVisible(false);
}//GEN-LAST:event_jButtonBookInfo1ActionPerformed

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
    insertMajorCompletedList();
}//GEN-LAST:event_jButton1ActionPerformed

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
    removeMajorCompletedList();
}//GEN-LAST:event_jButton2ActionPerformed

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed
    loadCourseDesc();
}//GEN-LAST:event_jButton3ActionPerformed

private void jListUpdateMajorCourseAllPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_jListUpdateMajorCourseAllPropertyChange
    
}//GEN-LAST:event_jListUpdateMajorCourseAllPropertyChange

private void jListUpdateMajorCourseAllValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_jListUpdateMajorCourseAllValueChanged
    
}//GEN-LAST:event_jListUpdateMajorCourseAllValueChanged

private void jListUpdateCompletedCoursesValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_jListUpdateCompletedCoursesValueChanged
    
}//GEN-LAST:event_jListUpdateCompletedCoursesValueChanged

private void jListUpdateMajorCourseAllFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_jListUpdateMajorCourseAllFocusLost
    
}//GEN-LAST:event_jListUpdateMajorCourseAllFocusLost

private void jListUpdateCompletedCoursesFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_jListUpdateCompletedCoursesFocusLost
    
}//GEN-LAST:event_jListUpdateCompletedCoursesFocusLost

private void jListUpdateMajorCourseAllFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_jListUpdateMajorCourseAllFocusGained
    jListUpdateCompletedCourses.clearSelection();
}//GEN-LAST:event_jListUpdateMajorCourseAllFocusGained

private void jListUpdateCompletedCoursesFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_jListUpdateCompletedCoursesFocusGained
    jListUpdateMajorCourseAll.clearSelection();
}//GEN-LAST:event_jListUpdateCompletedCoursesFocusGained

private void jListInterestElectiveFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_jListInterestElectiveFocusGained
    jListInterestInterest.clearSelection();
}//GEN-LAST:event_jListInterestElectiveFocusGained

private void jListInterestInterestFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_jListInterestInterestFocusGained
    jListInterestElective.clearSelection();
}//GEN-LAST:event_jListInterestInterestFocusGained

private void jButtonInterestDesc2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonInterestDesc2ActionPerformed
    loadCourseDesc2();
}//GEN-LAST:event_jButtonInterestDesc2ActionPerformed

private void jButtonInterestInsertActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonInterestInsertActionPerformed
    insertInterestList();
}//GEN-LAST:event_jButtonInterestInsertActionPerformed

private void jButtonInterestRemoveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonInterestRemoveActionPerformed
    removeInterestList();
}//GEN-LAST:event_jButtonInterestRemoveActionPerformed

private void jButtonTimeNextActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonTimeNextActionPerformed
        readjFrameTime();
        if(jListTimePlan.getModel().getSize()==0){
            javax.swing.JOptionPane.showMessageDialog(null,
                    "Please select atleast one \n"+
                    "course to schedule.");
        }else{
            jFrameTime.setVisible(false);
            jFrameQuarterlyPlan.setVisible(true);
            loadQuarterlyPlans();
        }
}//GEN-LAST:event_jButtonTimeNextActionPerformed

private void jButton13ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton13ActionPerformed
    readjFrameTime();
    jFrameTime.setVisible(false);
    jFrameMode.setVisible(true);
    
}//GEN-LAST:event_jButton13ActionPerformed

private void jCheckMonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckMonActionPerformed
       
}//GEN-LAST:event_jCheckMonActionPerformed

private void jCheckTueActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckTueActionPerformed
  
}//GEN-LAST:event_jCheckTueActionPerformed

private void jCheckWedActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckWedActionPerformed

}//GEN-LAST:event_jCheckWedActionPerformed

private void jCheckThuActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckThuActionPerformed

}//GEN-LAST:event_jCheckThuActionPerformed

private void jCheckFriActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckFriActionPerformed
   
}//GEN-LAST:event_jCheckFriActionPerformed

private void jCheckSatActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckSatActionPerformed
  
}//GEN-LAST:event_jCheckSatActionPerformed

private void jButtonQuarterlyPlanNextActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonQuarterlyPlanNextActionPerformed
    jFrameQuarterlyPlan.setVisible(false);
    jFrameMode.setVisible(true);
}//GEN-LAST:event_jButtonQuarterlyPlanNextActionPerformed

private void jButton14ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton14ActionPerformed
    jFrameQuarterlyPlan.setVisible(false);
    jFrameTime.setVisible(true);
}//GEN-LAST:event_jButton14ActionPerformed

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed
    jFrameAcademicPlan.setVisible(false);
    jFrameMode.setVisible(true);
}//GEN-LAST:event_jButton4ActionPerformed

private void jListTimeCoursesFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_jListTimeCoursesFocusGained
    jListTimePlan.clearSelection();
}//GEN-LAST:event_jListTimeCoursesFocusGained

private void jListTimePlanFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_jListTimePlanFocusGained
    jListTimeCourses.clearSelection();
}//GEN-LAST:event_jListTimePlanFocusGained

private void jButtonTimeInsertActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonTimeInsertActionPerformed
    insertIntoPlanList();
}//GEN-LAST:event_jButtonTimeInsertActionPerformed

private void jButtonTimeRemoveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonTimeRemoveActionPerformed
    removePlanList();
}//GEN-LAST:event_jButtonTimeRemoveActionPerformed

private void jButtonTimeDescActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonTimeDescActionPerformed
    loadCourseDescTimeFrame();
}//GEN-LAST:event_jButtonTimeDescActionPerformed

private void jCheckMonStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_jCheckMonStateChanged
    if(jCheckMon.isSelected()){
        jComboMonS.setEnabled(false);
        jComboMonE.setEnabled(false);
    }else{
        jComboMonS.setEnabled(true);
        jComboMonE.setEnabled(true);
    }
}//GEN-LAST:event_jCheckMonStateChanged

private void jCheckTueStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_jCheckTueStateChanged
    if(jCheckTue.isSelected()){
        jComboTueS.setEnabled(false);
        jComboTueE.setEnabled(false);
    }else{
        jComboTueS.setEnabled(true);
        jComboTueE.setEnabled(true);
    }
}//GEN-LAST:event_jCheckTueStateChanged

private void jCheckWedStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_jCheckWedStateChanged
    if(jCheckWed.isSelected()){
        jComboWedS.setEnabled(false);
        jComboWedE.setEnabled(false);
    }else{
        jComboWedS.setEnabled(true);
        jComboWedE.setEnabled(true);
    }
}//GEN-LAST:event_jCheckWedStateChanged

private void jCheckThuStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_jCheckThuStateChanged
    if(jCheckThu.isSelected()){
        jComboThuS.setEnabled(false);
        jComboThuE.setEnabled(false);
    }else{
        jComboThuS.setEnabled(true);
        jComboThuE.setEnabled(true);
    }
}//GEN-LAST:event_jCheckThuStateChanged

private void jCheckFriStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_jCheckFriStateChanged
    if(jCheckFri.isSelected()){
        jComboFriS.setEnabled(false);
        jComboFriE.setEnabled(false);
    }else{
        jComboFriS.setEnabled(true);
        jComboFriE.setEnabled(true);
    }
}//GEN-LAST:event_jCheckFriStateChanged

private void jCheckSatStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_jCheckSatStateChanged
    if(jCheckSat.isSelected()){
        jComboSatS.setEnabled(false);
        jComboSatE.setEnabled(false);
    }else{
        jComboSatS.setEnabled(true);
        jComboSatE.setEnabled(true);
    }
}//GEN-LAST:event_jCheckSatStateChanged

private void jComboBoxUpdateMajorItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_jComboBoxUpdateMajorItemStateChanged
    loadJListTime();
    initInterestFrame();
}//GEN-LAST:event_jComboBoxUpdateMajorItemStateChanged

private void jButtonAcdemicResultsFinishActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonAcdemicResultsFinishActionPerformed
    jFrameAcademicResults.setVisible(false);
    jFrameMode.setVisible(true);
}//GEN-LAST:event_jButtonAcdemicResultsFinishActionPerformed

private void jButtonAcademicResiltsBackActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonAcademicResiltsBackActionPerformed
    jFrameAcademicResults.setVisible(false);
    jFrameInterests.setVisible(true);
}//GEN-LAST:event_jButtonAcademicResiltsBackActionPerformed

private void jButtonTimeRankUpActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonTimeRankUpActionPerformed
    moveUpTimePlanList();
}//GEN-LAST:event_jButtonTimeRankUpActionPerformed

private void jButtonTimeRankDownActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonTimeRankDownActionPerformed
    moveDownTimePlanList();
}//GEN-LAST:event_jButtonTimeRankDownActionPerformed

private void jMenuItemStartExitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemStartExitActionPerformed
    System.exit(0);
}//GEN-LAST:event_jMenuItemStartExitActionPerformed

private void jMenuItemUpdateExitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemUpdateExitActionPerformed
    System.exit(0);
}//GEN-LAST:event_jMenuItemUpdateExitActionPerformed

private void jMenuItemInterestsExitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemInterestsExitActionPerformed
    System.exit(0);
}//GEN-LAST:event_jMenuItemInterestsExitActionPerformed

private void jMenuItemModeExitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemModeExitActionPerformed
    System.exit(0);
}//GEN-LAST:event_jMenuItemModeExitActionPerformed

private void jMenuItemStartExit4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemStartExit4ActionPerformed
    System.exit(0);
}//GEN-LAST:event_jMenuItemStartExit4ActionPerformed

private void jMenuItemStartExit5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemStartExit5ActionPerformed
    System.exit(0);
}//GEN-LAST:event_jMenuItemStartExit5ActionPerformed

private void jMenuItemStartExit6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemStartExit6ActionPerformed
    System.exit(0);
}//GEN-LAST:event_jMenuItemStartExit6ActionPerformed

private void jMenuItemStartOpenActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemStartOpenActionPerformed
    openFile();
}//GEN-LAST:event_jMenuItemStartOpenActionPerformed

private void jMenuItemStartNewActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemStartNewActionPerformed
    newProfile();
}//GEN-LAST:event_jMenuItemStartNewActionPerformed

private void jMenuItemStartSaveasActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemStartSaveasActionPerformed
    saveProfile();
}//GEN-LAST:event_jMenuItemStartSaveasActionPerformed

private void jMenuItemStartWelcomeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemStartWelcomeActionPerformed
    viewWelcome();
}//GEN-LAST:event_jMenuItemStartWelcomeActionPerformed

private void jMenuItemStartModeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemStartModeActionPerformed
    viewMode();
}//GEN-LAST:event_jMenuItemStartModeActionPerformed

private void jMenuItemModeNewActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemModeNewActionPerformed
    newProfile();
}//GEN-LAST:event_jMenuItemModeNewActionPerformed

private void jMenuItemModeOpenActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemModeOpenActionPerformed
    openFile();
}//GEN-LAST:event_jMenuItemModeOpenActionPerformed

private void jMenuItemModeSaveasActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemModeSaveasActionPerformed
    saveProfile();
}//GEN-LAST:event_jMenuItemModeSaveasActionPerformed

private void jMenuItemModeWelcomeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemModeWelcomeActionPerformed
    viewWelcome();
}//GEN-LAST:event_jMenuItemModeWelcomeActionPerformed

private void jMenuItemStartSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemStartSaveActionPerformed
    if(globalFilename==null){
        saveProfile();
    }else{
        saveProfile(globalFilename.getPath());
    }
}//GEN-LAST:event_jMenuItemStartSaveActionPerformed

private void jMenuItemModeSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemModeSaveActionPerformed
    if(globalFilename==null){
        saveProfile();
    }else{
        saveProfile(globalFilename.getPath());
    }
}//GEN-LAST:event_jMenuItemModeSaveActionPerformed

private void jMenuItemStartHelpActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemStartHelpActionPerformed
    jFrameHelp.setVisible(true);
}//GEN-LAST:event_jMenuItemStartHelpActionPerformed

private void jMenuItemUpdateNewActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemUpdateNewActionPerformed
    newProfile();
}//GEN-LAST:event_jMenuItemUpdateNewActionPerformed

private void jMenuItemUpdateOpenActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemUpdateOpenActionPerformed
    openFile();
}//GEN-LAST:event_jMenuItemUpdateOpenActionPerformed

private void jMenuItemUpdateSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemUpdateSaveActionPerformed
    if(globalFilename==null){
        saveProfile();
    }else{
        saveProfile(globalFilename.getPath());
    }
}//GEN-LAST:event_jMenuItemUpdateSaveActionPerformed

private void jMenuItemUpdateSaveasActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemUpdateSaveasActionPerformed
    saveProfile();
}//GEN-LAST:event_jMenuItemUpdateSaveasActionPerformed

private void jMenuItemUpdateWelcomeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemUpdateWelcomeActionPerformed
    viewWelcome();
}//GEN-LAST:event_jMenuItemUpdateWelcomeActionPerformed

private void jMenuItemUpdateModeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemUpdateModeActionPerformed
    viewMode();
}//GEN-LAST:event_jMenuItemUpdateModeActionPerformed

private void jMenuItemInterestsNewActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemInterestsNewActionPerformed
    newProfile();
}//GEN-LAST:event_jMenuItemInterestsNewActionPerformed

private void jMenuItemInterestsOpenActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemInterestsOpenActionPerformed
    openFile();
}//GEN-LAST:event_jMenuItemInterestsOpenActionPerformed

private void jMenuItemInterestsSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemInterestsSaveActionPerformed
    if(globalFilename==null){
        saveProfile();
    }else{
        saveProfile(globalFilename.getPath());
    }
}//GEN-LAST:event_jMenuItemInterestsSaveActionPerformed

private void jMenuItemInterestsSaveasActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemInterestsSaveasActionPerformed
    saveProfile();
}//GEN-LAST:event_jMenuItemInterestsSaveasActionPerformed

private void jMenuItemInterestsWelcomeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemInterestsWelcomeActionPerformed
    viewWelcome();
}//GEN-LAST:event_jMenuItemInterestsWelcomeActionPerformed

private void jMenuItemInterestsModeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemInterestsModeActionPerformed
    viewMode();
}//GEN-LAST:event_jMenuItemInterestsModeActionPerformed

private void jMenuItemStartNew4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemStartNew4ActionPerformed
    newProfile();
}//GEN-LAST:event_jMenuItemStartNew4ActionPerformed

private void jMenuItemStartOpen4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemStartOpen4ActionPerformed
    openFile();
}//GEN-LAST:event_jMenuItemStartOpen4ActionPerformed

private void jMenuItemStartSave4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemStartSave4ActionPerformed
    if(globalFilename==null){
        saveProfile();
    }else{
        saveProfile(globalFilename.getPath());
    }
}//GEN-LAST:event_jMenuItemStartSave4ActionPerformed

private void jMenuItemStartSaveas4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemStartSaveas4ActionPerformed
    saveProfile();
}//GEN-LAST:event_jMenuItemStartSaveas4ActionPerformed

private void jMenuItemStartWelcome4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemStartWelcome4ActionPerformed
    viewWelcome();
}//GEN-LAST:event_jMenuItemStartWelcome4ActionPerformed

private void jMenuItemStartMode4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemStartMode4ActionPerformed
    viewMode();
}//GEN-LAST:event_jMenuItemStartMode4ActionPerformed

private void jMenuItemStartNew5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemStartNew5ActionPerformed
    newProfile();
}//GEN-LAST:event_jMenuItemStartNew5ActionPerformed

private void jMenuItemStartOpen5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemStartOpen5ActionPerformed
    openFile();
}//GEN-LAST:event_jMenuItemStartOpen5ActionPerformed

private void jMenuItemStartSave5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemStartSave5ActionPerformed
    if(globalFilename==null){
        saveProfile();
    }else{
        saveProfile(globalFilename.getPath());
    }
}//GEN-LAST:event_jMenuItemStartSave5ActionPerformed

private void jMenuItemStartSaveas5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemStartSaveas5ActionPerformed
    saveProfile();
}//GEN-LAST:event_jMenuItemStartSaveas5ActionPerformed

private void jMenuItemStartWelcome5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemStartWelcome5ActionPerformed
    viewWelcome();
}//GEN-LAST:event_jMenuItemStartWelcome5ActionPerformed

private void jMenuItemStartMode5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemStartMode5ActionPerformed
    viewMode();
}//GEN-LAST:event_jMenuItemStartMode5ActionPerformed

private void jMenuItemStartNew6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemStartNew6ActionPerformed
    newProfile();
}//GEN-LAST:event_jMenuItemStartNew6ActionPerformed

private void jMenuItemStartOpen6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemStartOpen6ActionPerformed
    openFile();
}//GEN-LAST:event_jMenuItemStartOpen6ActionPerformed

private void jMenuItemStartSave6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemStartSave6ActionPerformed
    if(globalFilename==null){
        saveProfile();
    }else{
        saveProfile(globalFilename.getPath());
    }
}//GEN-LAST:event_jMenuItemStartSave6ActionPerformed

private void jMenuItemStartSaveas6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemStartSaveas6ActionPerformed
    saveProfile();
}//GEN-LAST:event_jMenuItemStartSaveas6ActionPerformed

private void jMenuItemStartWelcome6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemStartWelcome6ActionPerformed
    viewWelcome();
}//GEN-LAST:event_jMenuItemStartWelcome6ActionPerformed

private void jMenuItemStartMode6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemStartMode6ActionPerformed
    viewMode();
}//GEN-LAST:event_jMenuItemStartMode6ActionPerformed

private void jMenuItemStartAuthor4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemStartAuthor4ActionPerformed
    viewAuthor();
}//GEN-LAST:event_jMenuItemStartAuthor4ActionPerformed

private void jMenuItemStartAuthorActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemStartAuthorActionPerformed
    viewAuthor();
}//GEN-LAST:event_jMenuItemStartAuthorActionPerformed

private void jMenuItemUpdateAuthorActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemUpdateAuthorActionPerformed
    viewAuthor();
}//GEN-LAST:event_jMenuItemUpdateAuthorActionPerformed

private void jMenuItemInterestsAuthorActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemInterestsAuthorActionPerformed
    viewAuthor();
}//GEN-LAST:event_jMenuItemInterestsAuthorActionPerformed

private void jMenuItemModeAuthorActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemModeAuthorActionPerformed
    viewAuthor();
}//GEN-LAST:event_jMenuItemModeAuthorActionPerformed

private void jMenuItemStartAuthor5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemStartAuthor5ActionPerformed
    viewAuthor();
}//GEN-LAST:event_jMenuItemStartAuthor5ActionPerformed

private void jMenuItemStartAuthor6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemStartAuthor6ActionPerformed
    viewAuthor();
}//GEN-LAST:event_jMenuItemStartAuthor6ActionPerformed

private void jMenuItemQPResults2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemQPResults2ActionPerformed
    viewQuarterlyPlanResults();
}//GEN-LAST:event_jMenuItemQPResults2ActionPerformed

private void jMenuItemAPResults2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemAPResults2ActionPerformed
    viewAcademicPlanResults();
}//GEN-LAST:event_jMenuItemAPResults2ActionPerformed

private void jMenuItemQPResults3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemQPResults3ActionPerformed
    viewQuarterlyPlanResults();
}//GEN-LAST:event_jMenuItemQPResults3ActionPerformed

private void jMenuItemAPResults3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemAPResults3ActionPerformed
    viewAcademicPlanResults();
}//GEN-LAST:event_jMenuItemAPResults3ActionPerformed

private void jMenuItemQPResults4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemQPResults4ActionPerformed
    viewQuarterlyPlanResults();
}//GEN-LAST:event_jMenuItemQPResults4ActionPerformed

private void jMenuItemAPResults4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemAPResults4ActionPerformed
    viewAcademicPlanResults();
}//GEN-LAST:event_jMenuItemAPResults4ActionPerformed

private void jMenuItemQPResults5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemQPResults5ActionPerformed
    viewQuarterlyPlanResults();
}//GEN-LAST:event_jMenuItemQPResults5ActionPerformed

private void jMenuItemAPResults5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemAPResults5ActionPerformed
    viewAcademicPlanResults();
}//GEN-LAST:event_jMenuItemAPResults5ActionPerformed

private void jMenuItemQPResults6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemQPResults6ActionPerformed
    viewQuarterlyPlanResults();
}//GEN-LAST:event_jMenuItemQPResults6ActionPerformed

private void jMenuItemAPResults6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemAPResults6ActionPerformed
    viewAcademicPlanResults();
}//GEN-LAST:event_jMenuItemAPResults6ActionPerformed

private void jMenuItemQPResults7ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemQPResults7ActionPerformed
   viewQuarterlyPlanResults();
}//GEN-LAST:event_jMenuItemQPResults7ActionPerformed

private void jMenuItemAPResults7ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemAPResults7ActionPerformed
    viewAcademicPlanResults();
}//GEN-LAST:event_jMenuItemAPResults7ActionPerformed

private void jMenuItemQPResults8ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemQPResults8ActionPerformed
    viewQuarterlyPlanResults();
}//GEN-LAST:event_jMenuItemQPResults8ActionPerformed

private void jMenuItemAPResults8ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemAPResults8ActionPerformed
    viewAcademicPlanResults();
}//GEN-LAST:event_jMenuItemAPResults8ActionPerformed

private void jTableQuarterly1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTableQuarterly1MouseClicked
 
}//GEN-LAST:event_jTableQuarterly1MouseClicked

private void jTableQuarterly1MousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTableQuarterly1MousePressed
 
}//GEN-LAST:event_jTableQuarterly1MousePressed

private void jTableQuarterly1MouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTableQuarterly1MouseReleased
    
     if (evt.isPopupTrigger())    
    {
        jPopupMenuPrint.show(evt.getComponent(),evt.getX(),evt.getY());      
    }
}//GEN-LAST:event_jTableQuarterly1MouseReleased

private void jMenuItemPrintActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemPrintActionPerformed
    if (jTableQuarterly1.hasFocus())
    {
    try {
                    jTableQuarterly1.print();
             
        } catch (PrinterException ex) {
            Logger.getLogger(MyHCI.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}//GEN-LAST:event_jMenuItemPrintActionPerformed

private void jTableQuarterly2MouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTableQuarterly2MouseReleased
    // TODO add your handling code here:
     if (evt.isPopupTrigger())    // TODO add your handling code here:
    {
           jPopupMenuPrint.show(evt.getComponent(),evt.getX(),evt.getY());      
    }
}//GEN-LAST:event_jTableQuarterly2MouseReleased

private void jTableQuarterly3MouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTableQuarterly3MouseReleased
    // TODO add your handling code here:
     if (evt.isPopupTrigger())    // TODO add your handling code here:
    {
           jPopupMenuPrint.show(evt.getComponent(),evt.getX(),evt.getY());
    }
}//GEN-LAST:event_jTableQuarterly3MouseReleased

private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem1ActionPerformed
    viewProfileResults();
}//GEN-LAST:event_jMenuItem1ActionPerformed

private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem2ActionPerformed
    viewProfileResults();
}//GEN-LAST:event_jMenuItem2ActionPerformed

private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem3ActionPerformed
    viewProfileResults();
}//GEN-LAST:event_jMenuItem3ActionPerformed

private void jMenuItem4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem4ActionPerformed
    viewProfileResults();
}//GEN-LAST:event_jMenuItem4ActionPerformed

private void jMenuItem5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem5ActionPerformed
    viewProfileResults();
}//GEN-LAST:event_jMenuItem5ActionPerformed

private void jMenuItem6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem6ActionPerformed
    viewProfileResults();
}//GEN-LAST:event_jMenuItem6ActionPerformed

private void jMenuItem7ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem7ActionPerformed
    viewProfileResults();
}//GEN-LAST:event_jMenuItem7ActionPerformed

private void jMenuItemUpdateHelpActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemUpdateHelpActionPerformed
    jFrameHelp.setVisible(true);
}//GEN-LAST:event_jMenuItemUpdateHelpActionPerformed

private void jEditorPane1ComponentShown(java.awt.event.ComponentEvent evt) {//GEN-FIRST:event_jEditorPane1ComponentShown
       
}//GEN-LAST:event_jEditorPane1ComponentShown

private void jEditorPane1ComponentAdded(java.awt.event.ContainerEvent evt) {//GEN-FIRST:event_jEditorPane1ComponentAdded
}//GEN-LAST:event_jEditorPane1ComponentAdded

private void jMenuItemModeHelpActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemModeHelpActionPerformed
    jFrameHelp.setVisible(true);
}//GEN-LAST:event_jMenuItemModeHelpActionPerformed

private void jMenuItemInterestsHelpActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemInterestsHelpActionPerformed
    jFrameHelp.setVisible(true);
}//GEN-LAST:event_jMenuItemInterestsHelpActionPerformed

private void jMenuItemStartHelp4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemStartHelp4ActionPerformed
    jFrameHelp.setVisible(true);
}//GEN-LAST:event_jMenuItemStartHelp4ActionPerformed

private void jMenuItemStartHelp5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemStartHelp5ActionPerformed
    jFrameHelp.setVisible(true);
}//GEN-LAST:event_jMenuItemStartHelp5ActionPerformed

private void jMenuItemStartHelp6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemStartHelp6ActionPerformed
    jFrameHelp.setVisible(true);
}//GEN-LAST:event_jMenuItemStartHelp6ActionPerformed
                                   

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new MyHCI().setVisible(false);
            }
        });
    }

 

    private void centerMainFrame(){
        java.awt.Dimension dim = getToolkit().getScreenSize();
        java.awt.Rectangle abounds = getBounds();
        setLocation((dim.width - abounds.width) / 2,
                    (dim.height - abounds.height) / 2);
        abounds = jFrameStart.getBounds();
        jFrameStart.setLocation((dim.width - abounds.width) / 2,
                                (dim.height - abounds.height) / 2);
        abounds = jFrameUpdate.getBounds();
        jFrameUpdate.setLocation((dim.width - abounds.width) / 2,
                                 (dim.height - abounds.height) / 2);
        abounds = jFrameInterests.getBounds();
        jFrameInterests.setLocation((dim.width - abounds.width) / 2,
                                    (dim.height - abounds.height) / 2);
        abounds = jFrameMode.getBounds();
        jFrameMode.setLocation((dim.width - abounds.width) / 2,
                               (dim.height - abounds.height) / 2);
        abounds = jFrameDescription.getBounds();
        jFrameDescription.setLocation((dim.width - abounds.width) / 2,
                               (dim.height - abounds.height) / 2);
        abounds = jFrameTime.getBounds();
        jFrameTime.setLocation((dim.width - abounds.width) / 2,
                               (dim.height - abounds.height) / 2);
        abounds = jFrameQuarterlyPlan.getBounds();
        jFrameQuarterlyPlan.setLocation((dim.width - abounds.width) / 2,
                               (dim.height - abounds.height) / 2);
        abounds = jFrameAcademicResults.getBounds();
        jFrameAcademicResults.setLocation((dim.width - abounds.width) / 2,
                               (dim.height - abounds.height) / 2);
        abounds = jFrameHelp.getBounds();
        jFrameHelp.setLocation((dim.width - abounds.width-10),10);
    }
    private void initLoad(){
        loadMajorList();
    }
    /** fills jComboBoxUpdateMajor */
    private void loadMajorList(){
        ObjMajor major[] = db.getMajor();
        String majorName[] = new String[major.length];
        for(int i=0; i<majorName.length; ++i)
            majorName[i] = major[i].getName();
        jComboBoxUpdateMajor.setModel(new DefaultComboBoxModel(majorName));
    }
    /** fills the jListUpdateMajorCourseAll */
    private void updateMajorCourseList(){
        String major = (String)jComboBoxUpdateMajor.getSelectedItem();
        String degree = UNDG;
        if(jRadioButtonUndg.isSelected()){
            degree = UNDG;
        } /*else if(jRadioButtonPost.isSelected()){
            degree = POST;
        }else if(jRadioButtonExte.isSelected()){
            degree = EXTE;
        }*/ //need to implement when more data is available
        
        ObjArea core[] = db.getCore(major,degree);
        ObjArea support[] = db.getSupport(major,degree);
        ObjArea elective[] = db.getElective(major,degree);
        ObjArea areaa[] = db.getAreaA(major,degree);
        ObjArea areab[] = db.getAreaB(major,degree);
        ObjArea areac[] = db.getAreaC(major,degree);
        ObjArea aread[] = db.getAreaD(major,degree);
        ObjArea areae[] = db.getAreaE(major,degree);
        int cnt = core.length+support.length+elective.length+areaa.length+areab.length+areac.length+aread.length+areae.length;
        String[] courseID = new String[cnt+8];
        cnt=0;
        courseID[cnt++] = "------------------------------------Core Courses------------------------------------";
        for(int i=0; i<core.length; ++i, ++cnt)
            courseID[cnt] = filterInName(core[i].getCourseid());
        courseID[cnt++] = "-----------------------------------Elective Courses---------------------------------";
        for(int i=0; i<elective.length; ++i, ++cnt)
            courseID[cnt] = filterInName(elective[i].getCourseid());
        courseID[cnt++] = "-----------------------------------Support Courses----------------------------------";
        for(int i=0; i<support.length; ++i, ++cnt)
            courseID[cnt] = filterInName(support[i].getCourseid());
        courseID[cnt++] = "----------------------------General Education Area A Courses------------------------";
        for(int i=0; i<areaa.length; ++i, ++cnt)
            courseID[cnt] = filterInName(areaa[i].getCourseid());
        courseID[cnt++] = "----------------------------General Education Area B Courses------------------------";
        for(int i=0; i<areab.length; ++i, ++cnt)
            courseID[cnt] = filterInName(areab[i].getCourseid());
        courseID[cnt++] = "----------------------------General Education Area C Courses------------------------";
        for(int i=0; i<areac.length; ++i, ++cnt)
            courseID[cnt] = filterInName(areac[i].getCourseid());
        courseID[cnt++] = "----------------------------General Education Area D Courses------------------------";
        for(int i=0; i<aread.length; ++i, ++cnt)
            courseID[cnt] = filterInName(aread[i].getCourseid());
        courseID[cnt++] = "----------------------------General Education Area E Courses------------------------";
        for(int i=0; i<areae.length; ++i, ++cnt)
            courseID[cnt] = filterInName(areae[i].getCourseid());
        jListUpdateMajorCourseAll.setListData(courseID);
    }
    private String filterInName(String s){
        ObjCourse c = db.getCourse(s);
        s += DELIM+c.getName();
        return s;
    }
    private String filterOutName(String s){
        String a[] = s.split(DELIM);
        return a[0];
    }
    /** updates jListUpdateMajorCourseAll
     *      Note: Multiple occurance of the same class are allowed to
     *              account for unit accumulation. (i.e. x99 classes)
     */
    private void insertMajorCompletedList(){
        String s = (String)jListUpdateMajorCourseAll.getSelectedValue();
        if(!jListUpdateMajorCourseAll.isSelectionEmpty()){
            if(s.charAt(0)!='-'){
                s = filterOutName(s);
                if(isInCompletedList(s)){
                    String message = "["+s+"] already in completed list. \nKeep duplicates in the list?";
                    String title = "Duplicate Found";
                    int reply = javax.swing.JOptionPane.showConfirmDialog(null, message, title, javax.swing.JOptionPane.YES_NO_OPTION);
                    if (reply == javax.swing.JOptionPane.YES_OPTION){
                        ListModel compl = jListUpdateCompletedCourses.getModel();
                        String sa[] = new String[compl.getSize()+1];
                        sa[0] = s;
                        for(int i=0; i<compl.getSize(); ++i){
                            sa[i+1] = ""+compl.getElementAt(i);
                        }
                        java.util.Arrays.sort(sa);
                        jListUpdateCompletedCourses.setListData(sa);
                    }
                }else{
                    ListModel compl = jListUpdateCompletedCourses.getModel();
                    String sa[] = new String[compl.getSize()+1];
                    sa[0] = s;
                    for(int i=0; i<compl.getSize(); ++i){
                        sa[i+1] = ""+compl.getElementAt(i);
                    }
                    java.util.Arrays.sort(sa);
                    jListUpdateCompletedCourses.setListData(sa);
                }
                
                
            }else if(s.charAt(0)=='-'){
                javax.swing.JOptionPane.showMessageDialog(null,
                    "You have selected the Course Category.\n"+
                    "Please select a Class from the Course List.");
            }
        }else{
                javax.swing.JOptionPane.showMessageDialog(null, 
                    "Please select a course from the Course List \n"+
                    "located on the left-hand side.");
        }
        jListUpdateMajorCourseAll.clearSelection();
    }

    private boolean isInCompletedList(String s){
        ListModel plist = jListUpdateCompletedCourses.getModel();
        for(int i=0; i<plist.getSize(); ++i){
            if(s.compareTo((String)plist.getElementAt(i))==0){
                return true;
            }
        }
        return false;
    }
    
    private void removeMajorCompletedList(){
        ListModel compl = jListUpdateCompletedCourses.getModel();
        if(compl.getSize()>0){
            String olds[] = new String[compl.getSize()];
            String news[] = { "" };
            if(olds.length>1){
                news = new String[compl.getSize()-1];
            }
            for(int i=0; i<olds.length; ++i){
                olds[i] = ""+compl.getElementAt(i);
            }
            if(olds.length>1 && !jListUpdateCompletedCourses.isSelectionEmpty()){
                for(int i=0; i<olds.length; ++i){
                    if(olds[i].compareTo(""+jListUpdateCompletedCourses.getSelectedValue())==0){
                        olds[i] = null;
                        break;
                    }
                }
                for(int i=0,j=0; i<olds.length && j<news.length; ){
                    if(olds[i]!=null){
                        news[j++] = olds[i++];
                    }else{
                        ++i;
                    }
                }
                java.util.Arrays.sort(news);
                jListUpdateCompletedCourses.setListData(news);
            }else if(jListUpdateCompletedCourses.isSelectionEmpty()){
                javax.swing.JOptionPane.showMessageDialog(null, 
                    "Please select a course from the Completed Course List"+
                    " located on the right-hand side.");
            }else{
                jListUpdateCompletedCourses = new javax.swing.JList();
                jListUpdateCompletedCourses.setBorder(javax.swing.BorderFactory.createTitledBorder("Completed"));
                jListUpdateCompletedCourses.setFont(new java.awt.Font("Tahoma", 0, 15));
                jListUpdateCompletedCourses.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
                jScrollPane2.setViewportView(jListUpdateCompletedCourses);
            }
            
        }
    }
    private void loadCourseDesc(){
        java.awt.Dimension dim = getToolkit().getScreenSize();
        java.awt.Rectangle abounds = getBounds();
        abounds = jFrameDescription.getBounds();
        jFrameDescription.setLocation((dim.width - abounds.width) / 2,
                               (dim.height - abounds.height) / 2);
        if(!jListUpdateMajorCourseAll.isSelectionEmpty()){
            String temp = (String)jListUpdateMajorCourseAll.getSelectedValue();
            if(temp.charAt(0)!='-'){
                ObjCourse c = db.getCourse(filterOutName((String)jListUpdateMajorCourseAll.getSelectedValue()));
                jLabelDescCourseName.setText(filterOutName((String)jListUpdateMajorCourseAll.getSelectedValue())+" - "+
                            c.getName()+" ("+c.getUnit()+" unit)");
                if(c.getDesc()!=null){
                    jTextAreaDesc.setText(""+c.getDesc());
                }else{
                    jTextAreaDesc.setText("No description available at this time.");
                }
                jFrameDescription.setVisible(true);
            }else{
                String message = "You have chosen a Course Category.\n Please try again with a Course.";
                javax.swing.JOptionPane.showMessageDialog(null, message);
            }
        }else if(!jListUpdateCompletedCourses.isSelectionEmpty()){
            ObjCourse c = db.getCourse(filterOutName((String)jListUpdateCompletedCourses.getSelectedValue()));
            jLabelDescCourseName.setText(filterOutName((String)jListUpdateCompletedCourses.getSelectedValue())+" - "+
                        c.getName()+" ("+c.getUnit()+" unit)");
            if(c.getDesc()!=null){
                jTextAreaDesc.setText(""+c.getDesc());
            }else{
                jTextAreaDesc.setText("No description available at this time.");
            }
            jFrameDescription.setVisible(true);
        }else{
            String message = "Please select a course to view its description.";
            javax.swing.JOptionPane.showMessageDialog(null, message);
        }
    }
    private void loadCourseDesc2(){
        java.awt.Dimension dim = getToolkit().getScreenSize();
        java.awt.Rectangle abounds = getBounds();
        abounds = jFrameDescription.getBounds();
        jFrameDescription.setLocation((dim.width - abounds.width) / 2,
                               (dim.height - abounds.height) / 2);
        if(!jListInterestElective.isSelectionEmpty()){
            ObjCourse c = db.getCourse(filterOutName((String)jListInterestElective.getSelectedValue()));
            jLabelDescCourseName.setText(filterOutName((String)jListInterestElective.getSelectedValue())+" - "+
                        c.getName()+" ("+c.getUnit()+" unit)");
            if(c.getDesc()!=null){
                jTextAreaDesc.setText(""+c.getDesc());
            }else{
                jTextAreaDesc.setText("No description available at this time.");
            }
            jFrameDescription.setVisible(true);
        }else if(!jListInterestInterest.isSelectionEmpty()){
            ObjCourse c = db.getCourse(filterOutName((String)jListInterestInterest.getSelectedValue()));
            jLabelDescCourseName.setText(filterOutName((String)jListInterestInterest.getSelectedValue())+" - "+
                        c.getName()+" ("+c.getUnit()+" unit)");
            if(c.getDesc()!=null){
                jTextAreaDesc.setText(""+c.getDesc());
            }else{
                jTextAreaDesc.setText("No description available at this time.");
            }
            jFrameDescription.setVisible(true);
        }else{
            String message = "Please select a course to view its description.";
            javax.swing.JOptionPane.showMessageDialog(null, message);
        }
    }

    private void loadCourseDescTimeFrame(){
        java.awt.Dimension dim = getToolkit().getScreenSize();
        java.awt.Rectangle abounds = getBounds();
        abounds = jFrameDescription.getBounds();
        jFrameDescription.setLocation((dim.width - abounds.width) / 2,
                               (dim.height - abounds.height) / 2);
        if(!jListTimeCourses.isSelectionEmpty()){
            String temp = (String)jListTimeCourses.getSelectedValue();
            if(temp.charAt(0)!='-'){
                ObjCourse c = db.getCourse(filterOutName((String)jListTimeCourses.getSelectedValue()));
                jLabelDescCourseName.setText(filterOutName((String)jListTimeCourses.getSelectedValue())+" - "+
                            c.getName()+" ("+c.getUnit()+" unit)");
                if(c.getDesc()!=null){
                    jTextAreaDesc.setText(""+c.getDesc());
                }else{
                    jTextAreaDesc.setText("No description available at this time.");
                }
                jFrameDescription.setVisible(true);
            }else{
                String message = "You have chosen a Course Category.\n Please try again with a Course.";
                javax.swing.JOptionPane.showMessageDialog(null, message);
            }
        }else if(!jListTimePlan.isSelectionEmpty()){
            ObjCourse c = db.getCourse(filterOutName((String)jListTimePlan.getSelectedValue()));
            jLabelDescCourseName.setText(filterOutName((String)jListTimePlan.getSelectedValue())+" - "+
                        c.getName()+" ("+c.getUnit()+" unit)");
            if(c.getDesc()!=null){
                jTextAreaDesc.setText(""+c.getDesc());
            }else{
                jTextAreaDesc.setText("No description available at this time.");
            }
            jFrameDescription.setVisible(true);
        }else{
            String message = "Please select a course to view its description.";
            javax.swing.JOptionPane.showMessageDialog(null, message);
        }
    }
    
    private void loadMajorElectiveList(){
        String major = ""+jComboBoxUpdateMajor.getSelectedItem();
        String degree = UNDG;
        if(jRadioButtonUndg.isSelected()){
            degree = UNDG;
        } /*else if(jRadioButtonPost.isSelected()){
            degree = POST;
        }else if(jRadioButtonExte.isSelected()){
            degree = EXTE;
        }*/ //need to implement when more data is available

        ObjArea elective[] = db.getElective(major,degree);
        String courseID[] = new String[elective.length];
        for(int i=0; i<elective.length; ++i)
            courseID[i] = filterInName(elective[i].getCourseid());
        jListInterestElective.setListData(courseID);
    }
    
    private void initInterestFrame(){
        loadMajorElectiveList();
        JComboBox[] geBoxes = { jComboBoxA1, jComboBoxA2,jComboBoxA3,
                                jComboBoxB1, jComboBoxB2,jComboBoxB3,jComboBoxB4,
                                jComboBoxC1, jComboBoxC2,jComboBoxC3,jComboBoxC4,
                                jComboBoxD1a, jComboBoxD1b,jComboBoxD2,jComboBoxD3,jComboBoxD4,
                                jComboBoxE };
        String[] geAreaTableNames = { "AreaA", "AreaA", "AreaA",
                        "AreaB", "AreaB", "AreaB", "AreaB",
                        "AreaC", "AreaC", "AreaC", "AreaC",
                        "AreaD", "AreaD", "AreaD", "AreaD", "AreaD",
                        "AreaE"};

        String[] geAreas = { "a1", "a2", "a3",
                        "b1", "b2", "b3", "b4",
                        "c1", "c2", "c3", "c4",
                        "d1a", "d1b", "d2", "d3", "d4",
                        "e"};

        for(int i=0;i<geBoxes.length;i++) {
            loadInterestGE(geBoxes[i], geAreaTableNames[i], geAreas[i]);
        }
    }

    private void loadInterestGE(JComboBox jComboBox, String areaTableName, String area){
        ObjArea el[] = db.getArea(areaTableName, (String)jComboBoxUpdateMajor.getSelectedItem(),UNDG,area);
        String courseID[] = new String[el.length];
        for(int i=0; i<courseID.length; ++i) {
            String id = (String)el[i].getCourseid();
            String title = courseID[i] = filterInName(id);
            geClassTitle2ID.put(title, id);
        }
        jComboBox.setModel(new DefaultComboBoxModel(courseID));


    }

    
    private void insertInterestList(){
        String s = (String)jListInterestElective.getSelectedValue();
        if(!jListInterestElective.isSelectionEmpty()){
            s = filterOutName(s);

            if(isInInterestList(s)){
                String message = "["+s+"] already in plan list. \nKeep duplicates in the list?";
                    String title = "Duplicate Found";
                    int reply = javax.swing.JOptionPane.showConfirmDialog(null, message, title, javax.swing.JOptionPane.YES_NO_OPTION);
                    if (reply == javax.swing.JOptionPane.YES_OPTION){
                        ListModel compl = jListInterestInterest.getModel();
                        String sa[] = new String[compl.getSize()+1];
                        sa[0] = s;
                        for(int i=0; i<compl.getSize(); ++i){
                            sa[i+1] = (String)compl.getElementAt(i);
                        }
                        java.util.Arrays.sort(sa);
                        jListInterestInterest.setListData(sa);
                    }
            }else{
                ListModel compl = jListInterestInterest.getModel();
                String sa[] = new String[compl.getSize()+1];
                sa[0] = s;
                for(int i=0; i<compl.getSize(); ++i){
                    sa[i+1] = (String)compl.getElementAt(i);
                }
                java.util.Arrays.sort(sa);
                jListInterestInterest.setListData(sa);
            }
        }else{
            javax.swing.JOptionPane.showMessageDialog(null, 
                    "Please select a course from the Elective List \n"+
                    "located on the left-hand side.");
        }
        jListInterestElective.clearSelection();
    }
    
    private boolean isInInterestList(String s){
        ListModel plist = jListInterestInterest.getModel();
        for(int i=0; i<plist.getSize(); ++i){
            if(s.equalsIgnoreCase((String)plist.getElementAt(i))){
                return true;
            }
        }
        return false;
    }
    
    private void removeInterestList(){
        ListModel compl = jListInterestInterest.getModel();
        if(compl.getSize()>0){
            String olds[] = new String[compl.getSize()];
            String news[] = { "" };
            if(olds.length>1){
                news = new String[compl.getSize()-1];
            }
            for(int i=0; i<olds.length; ++i){
                olds[i] = ""+compl.getElementAt(i);
            }
            if(olds.length>1 && !jListInterestInterest.isSelectionEmpty()){
                for(int i=0; i<olds.length; ++i){
                    if(olds[i].compareTo((String)jListInterestInterest.getSelectedValue())==0){
                        olds[i] = null;
                        break;
                    }
                }
                for(int i=0,j=0; i<olds.length && j<news.length; ){
                    if(olds[i]!=null){
                        news[j++] = olds[i++];
                    }else{
                        ++i;
                    }
                }
                java.util.Arrays.sort(news);
                jListInterestInterest.setListData(news);
            }else if(jListInterestInterest.isSelectionEmpty()){
                javax.swing.JOptionPane.showMessageDialog(null, 
                    "Please select a course from the Plan Course List \n"+
                    "located on the right-hand side.");
            }else{
                jListInterestInterest = new javax.swing.JList();
                jListInterestInterest.setBorder(javax.swing.BorderFactory.createTitledBorder("Plan"));
                jListInterestInterest.setFont(new java.awt.Font("Tahoma", 0, 15));
                jListInterestInterest.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
                jScrollPane4.setViewportView(jListInterestInterest);        
            }
            
        }
    }
    private boolean checkInterestReq(){
        ListModel model = jListInterestInterest.getModel();
        ObjMajor major = db.getMajor((String)jComboBoxUpdateMajor.getSelectedItem(),UNDG);
        if(model.getSize()*4 < major.getElectiveunits()){
            return false;
        }
        return true;
    }
    private ArrayList academicPlan1(){
        readjFramesForProfile();
        ArrayList list = null;
        final int GECNT = 17;
        int unitsperquarter = 16;
        
        String[] supports = profile.getSupports();
        String[] cores = profile.getCores();
        String[] ges = profile.getGEs();
        String[] electives = profile.getElectives();                //getElectivefromForm();

        int[] cUnits = new int[cores.length];
        int[] sUnits = new int[supports.length];
        int[] eUnits = new int[electives.length];
        int[] gUnits = new int[ges.length];


        fillUnitsArray(cores, cUnits);
        fillUnitsArray(supports, sUnits);
        fillUnitsArray(electives, eUnits);
        fillUnitsArray(ges, gUnits);
/*
        cUnits = filterOutCompletedUnits(cores, cUnits);
        sUnits = filterOutCompletedUnits(supports, sUnits);
        eUnits = filterOutCompletedUnits(electives, eUnits);
        gUnits = filterOutCompletedUnits(ges, gUnits);
        cores = filterOutCompletedCourse(cores);
        supports = filterOutCompletedCourse(supports);
        electives = filterOutCompletedCourse(electives);
        ges = filterOutCompletedCourse(ges);
 */
        
        try {
            list = AcademicPlan.getScheduleElectiveLast(cores, cUnits,
                                            supports, sUnits,
                                            ges, gUnits,
                                            electives, eUnits,
                                            unitsperquarter);
/*
            String s = "";
            for(int i=0;i<list.size();i++) {
                ArrayList quarter = (ArrayList) list.get(i);
                System.out.println("------------");
                System.out.println("Quarter:");
                s += "-----------\n";
                s += "Quarter:\n";
                for(int j=0;j<quarter.size();j++) {
                    ClassUnitPair cup = (ClassUnitPair) quarter.get(j);
                    System.out.println(cup.classId + "   " + cup.units + " units");
                    s += cup.classId + " " + cup.units  + " units" + "\n";
                }
            }
            jTextArea1.setText(s);
*/
        } catch(Exception ex ) {
            System.err.println(ex);
        }
        return list;
    }
    private void objAreaArrayToClassUnitArray(ObjArea[] objAreaArray , String[] classesArray, int[] unitsArray) {    
        for(int i=0;i<objAreaArray.length;i++) {
            String classId = classesArray[i] = objAreaArray[i].getCourseid();
            unitsArray[i] = db.getCourse(classId).getUnit();
        }  
    }

    private void fillUnitsArray(String[] classesArray, int[] unitsArray) {
        for(int i=0;i<classesArray.length;i++) {
            unitsArray[i] = db.getCourse(classesArray[i]).getUnit();
        }
    }
    
    private String[] getElectivefromForm(){
        ListModel model = jListInterestInterest.getModel();
        String chosen[] = {""};
        if(model.getSize()<1){
            return chosen;
        }else{
            chosen = new String[model.getSize()];
            for(int i=0; i<chosen.length; ++i){
                chosen[i] = (String)model.getElementAt(i);
            }
        }
        return chosen;
    }
    
    private void getGEfromForm(String ges[], int cnt){
        if(ges.length<=cnt){
            ges[0] = filterOutName((String)jComboBoxA1.getSelectedItem());
            ges[1] = filterOutName((String)jComboBoxA2.getSelectedItem());
            ges[2] = filterOutName((String)jComboBoxA3.getSelectedItem());
            ges[3] = filterOutName((String)jComboBoxB1.getSelectedItem());
            ges[4] = filterOutName((String)jComboBoxB2.getSelectedItem());
            ges[5] = filterOutName((String)jComboBoxB3.getSelectedItem());
            ges[6] = filterOutName((String)jComboBoxB4.getSelectedItem());
            ges[7] = filterOutName((String)jComboBoxC1.getSelectedItem());
            ges[8] = filterOutName((String)jComboBoxC2.getSelectedItem());
            ges[9] = filterOutName((String)jComboBoxC3.getSelectedItem());
            ges[10] = filterOutName((String)jComboBoxC4.getSelectedItem());
            ges[11] = filterOutName((String)jComboBoxD1a.getSelectedItem());
            ges[12] = filterOutName((String)jComboBoxD1b.getSelectedItem());
            ges[13] = filterOutName((String)jComboBoxD2.getSelectedItem());
            ges[14] = filterOutName((String)jComboBoxD3.getSelectedItem());
            ges[15] = filterOutName((String)jComboBoxD4.getSelectedItem());
            ges[16] = filterOutName((String)jComboBoxE.getSelectedItem());
        }
    }
    
    private void updateJFrameAcademicResults(ArrayList list){
        int q_cnt = list.size();
        if(q_cnt>12) q_cnt=12;
        String attrEmpty[] = {"Empty"};
        String courseEmpty[][] = {{" "}};
        switch(q_cnt){
            case 0:    jTableRow1Col1.setModel(new javax.swing.table.DefaultTableModel(courseEmpty,attrEmpty));
            case 1:    jTableRow1Col2.setModel(new javax.swing.table.DefaultTableModel(courseEmpty,attrEmpty));
            case 2:    jTableRow1Col3.setModel(new javax.swing.table.DefaultTableModel(courseEmpty,attrEmpty));
            case 3:    jTableRow2Col1.setModel(new javax.swing.table.DefaultTableModel(courseEmpty,attrEmpty));
            case 4:    jTableRow2Col2.setModel(new javax.swing.table.DefaultTableModel(courseEmpty,attrEmpty));
            case 5:    jTableRow2Col3.setModel(new javax.swing.table.DefaultTableModel(courseEmpty,attrEmpty));
            case 6:    jTableRow3Col1.setModel(new javax.swing.table.DefaultTableModel(courseEmpty,attrEmpty));
            case 7:    jTableRow3Col2.setModel(new javax.swing.table.DefaultTableModel(courseEmpty,attrEmpty));
            case 8:    jTableRow3Col3.setModel(new javax.swing.table.DefaultTableModel(courseEmpty,attrEmpty));
            case 9:    jTableRow4Col1.setModel(new javax.swing.table.DefaultTableModel(courseEmpty,attrEmpty));
            case 10:   jTableRow4Col2.setModel(new javax.swing.table.DefaultTableModel(courseEmpty,attrEmpty));
            case 11:   jTableRow4Col3.setModel(new javax.swing.table.DefaultTableModel(courseEmpty,attrEmpty));
            default:   break;
        }
        switch(q_cnt){
            case 12:    fillJTableRow4Col3("Spring (Senior)",   (ArrayList)list.get(--q_cnt));
            case 11:    fillJTableRow4Col2("Winter (Senior)",   (ArrayList)list.get(--q_cnt));
            case 10:    fillJTableRow4Col1("Fall (Senior)",     (ArrayList)list.get(--q_cnt));
            case 9:     fillJTableRow3Col3("Spring (Junior)",   (ArrayList)list.get(--q_cnt));
            case 8:     fillJTableRow3Col2("Winter (Junior)",   (ArrayList)list.get(--q_cnt));
            case 7:     fillJTableRow3Col1("Fall (Junior)",     (ArrayList)list.get(--q_cnt));
            case 6:     fillJTableRow2Col3("Spring (Sophomore)",   (ArrayList)list.get(--q_cnt));
            case 5:     fillJTableRow2Col2("Winter (Sophomore)",   (ArrayList)list.get(--q_cnt));
            case 4:     fillJTableRow2Col1("Fall (Sophomore)",     (ArrayList)list.get(--q_cnt));
            case 3:     fillJTableRow1Col3("Spring (Freshmen)",   (ArrayList)list.get(--q_cnt));
            case 2:     fillJTableRow1Col2("Winter (Freshmen)",   (ArrayList)list.get(--q_cnt));
            case 1:     fillJTableRow1Col1("Fall (Freshmen)",     (ArrayList)list.get(--q_cnt));
            default:    break;
        }
    }

    private void fillJTableRow1Col1(String colName, ArrayList sublist){
        String attribute[] = new String[1];
        attribute[0] = colName;
        String course[][] = new String[sublist.size()][1];
        for(int i=0; i<course.length; ++i){
            ClassUnitPair cup = (ClassUnitPair)sublist.get(i);
            course[i][0] = " ("+cup.units+") "+cup.classId+" - ";
            ObjCourse objc = db.getCourse(cup.classId);
            course[i][0] += objc.getName();
        }
        jTableRow1Col1.setModel(new javax.swing.table.DefaultTableModel(course,attribute));
    }
    
    private void fillJTableRow1Col2(String colName, ArrayList sublist){
        String attribute[] = new String[1];
        attribute[0] = colName;
        String course[][] = new String[sublist.size()][1];
        for(int i=0; i<course.length; ++i){
            ClassUnitPair cup = (ClassUnitPair)sublist.get(i);
            course[i][0] = " ("+cup.units+") "+cup.classId+" - ";
            ObjCourse objc = db.getCourse(cup.classId);
            course[i][0] += objc.getName();
        }
        jTableRow1Col2.setModel(new javax.swing.table.DefaultTableModel(course,attribute));
    }
    
    private void fillJTableRow1Col3(String colName, ArrayList sublist){
        String attribute[] = new String[1];
        attribute[0] = colName;
        String course[][] = new String[sublist.size()][1];
        for(int i=0; i<course.length; ++i){
            ClassUnitPair cup = (ClassUnitPair)sublist.get(i);
            course[i][0] = " ("+cup.units+") "+cup.classId+" - ";
            ObjCourse objc = db.getCourse(cup.classId);
            course[i][0] += objc.getName();
        }
        jTableRow1Col3.setModel(new javax.swing.table.DefaultTableModel(course,attribute));
    }
    
    private void fillJTableRow2Col1(String colName, ArrayList sublist){
        String attribute[] = new String[1];
        attribute[0] = colName;
        String course[][] = new String[sublist.size()][1];
        for(int i=0; i<course.length; ++i){
            ClassUnitPair cup = (ClassUnitPair)sublist.get(i);
            course[i][0] = " ("+cup.units+") "+cup.classId+" - ";
            ObjCourse objc = db.getCourse(cup.classId);
            course[i][0] += objc.getName();
        }
        jTableRow2Col1.setModel(new javax.swing.table.DefaultTableModel(course,attribute));
    }
    
    private void fillJTableRow2Col2(String colName, ArrayList sublist){
        String attribute[] = new String[1];
        attribute[0] = colName;
        String course[][] = new String[sublist.size()][1];
        for(int i=0; i<course.length; ++i){
            ClassUnitPair cup = (ClassUnitPair)sublist.get(i);
            course[i][0] = " ("+cup.units+") "+cup.classId+" - ";
            ObjCourse objc = db.getCourse(cup.classId);
            course[i][0] += objc.getName();
        }
        jTableRow2Col2.setModel(new javax.swing.table.DefaultTableModel(course,attribute));
    }
    
    private void fillJTableRow2Col3(String colName, ArrayList sublist){
        String attribute[] = new String[1];
        attribute[0] = colName;
        String course[][] = new String[sublist.size()][1];
        for(int i=0; i<course.length; ++i){
            ClassUnitPair cup = (ClassUnitPair)sublist.get(i);
            course[i][0] = " ("+cup.units+") "+cup.classId+" - ";
            ObjCourse objc = db.getCourse(cup.classId);
            course[i][0] += objc.getName();
        }
        jTableRow2Col3.setModel(new javax.swing.table.DefaultTableModel(course,attribute));
    }
    
    private void fillJTableRow3Col1(String colName, ArrayList sublist){
        String attribute[] = new String[1];
        attribute[0] = colName;
        String course[][] = new String[sublist.size()][1];
        for(int i=0; i<course.length; ++i){
            ClassUnitPair cup = (ClassUnitPair)sublist.get(i);
            course[i][0] = " ("+cup.units+") "+cup.classId+" - ";
            ObjCourse objc = db.getCourse(cup.classId);
            course[i][0] += objc.getName();
        }
        jTableRow3Col1.setModel(new javax.swing.table.DefaultTableModel(course,attribute));
    }
    
    private void fillJTableRow3Col2(String colName, ArrayList sublist){
        String attribute[] = new String[1];
        attribute[0] = colName;
        String course[][] = new String[sublist.size()][1];
        for(int i=0; i<course.length; ++i){
            ClassUnitPair cup = (ClassUnitPair)sublist.get(i);
            course[i][0] = " ("+cup.units+") "+cup.classId+" - ";
            ObjCourse objc = db.getCourse(cup.classId);
            course[i][0] += objc.getName();
        }
        jTableRow3Col2.setModel(new javax.swing.table.DefaultTableModel(course,attribute));
    }
    
    private void fillJTableRow3Col3(String colName, ArrayList sublist){
        String attribute[] = new String[1];
        attribute[0] = colName;
        String course[][] = new String[sublist.size()][1];
        for(int i=0; i<course.length; ++i){
            ClassUnitPair cup = (ClassUnitPair)sublist.get(i);
            course[i][0] = " ("+cup.units+") "+cup.classId+" - ";
            ObjCourse objc = db.getCourse(cup.classId);
            course[i][0] += objc.getName();
        }
        jTableRow3Col3.setModel(new javax.swing.table.DefaultTableModel(course,attribute));
    }
    
    private void fillJTableRow4Col1(String colName, ArrayList sublist){
        String attribute[] = new String[1];
        attribute[0] = colName;
        String course[][] = new String[sublist.size()][1];
        for(int i=0; i<course.length; ++i){
            ClassUnitPair cup = (ClassUnitPair)sublist.get(i);
            course[i][0] = " ("+cup.units+") "+cup.classId+" - ";
            ObjCourse objc = db.getCourse(cup.classId);
            course[i][0] += objc.getName();
        }
        jTableRow4Col1.setModel(new javax.swing.table.DefaultTableModel(course,attribute));
    }
    
    private void fillJTableRow4Col2(String colName, ArrayList sublist){
        String attribute[] = new String[1];
        attribute[0] = colName;
        String course[][] = new String[sublist.size()][1];
        for(int i=0; i<course.length; ++i){
            ClassUnitPair cup = (ClassUnitPair)sublist.get(i);
            course[i][0] = " ("+cup.units+") "+cup.classId+" - ";
            ObjCourse objc = db.getCourse(cup.classId);
            course[i][0] += objc.getName();
        }
        jTableRow4Col2.setModel(new javax.swing.table.DefaultTableModel(course,attribute));
    }
    
    private void fillJTableRow4Col3(String colName, ArrayList sublist){
        String attribute[] = new String[1];
        attribute[0] = colName;
        String course[][] = new String[sublist.size()][1];
        for(int i=0; i<course.length; ++i){
            ClassUnitPair cup = (ClassUnitPair)sublist.get(i);
            course[i][0] = " ("+cup.units+") "+cup.classId+" - ";
            ObjCourse objc = db.getCourse(cup.classId);
            course[i][0] += objc.getName();
        }
        jTableRow4Col3.setModel(new javax.swing.table.DefaultTableModel(course,attribute));
    }
    
    private void loadJListTime(){
        String major = (String)jComboBoxUpdateMajor.getSelectedItem();
        String degree = UNDG;
        if(jRadioButtonUndg.isSelected()){
            degree = UNDG;
        } /*else if(jRadioButtonPost.isSelected()){
            degree = POST;
        }else if(jRadioButtonExte.isSelected()){
            degree = EXTE;
        }*/ //need to implement when more data is available
        
        ObjArea core[] = db.getCore(major,degree);
        ObjArea support[] = db.getSupport(major,degree);
        ObjArea elective[] = db.getElective(major,degree);
        ObjArea areaa[] = db.getAreaA(major,degree);
        ObjArea areab[] = db.getAreaB(major,degree);
        ObjArea areac[] = db.getAreaC(major,degree);
        ObjArea aread[] = db.getAreaD(major,degree);
        ObjArea areae[] = db.getAreaE(major,degree);
        String c[] = new String[core.length];
        String s[] = new String[support.length];
        String e[] = new String[elective.length];
        String aa[] = new String[areaa.length];
        String ab[] = new String[areab.length];
        String ac[] = new String[areac.length];
        String ad[] = new String[aread.length];
        String ae[] = new String[areae.length];
        for(int i=0; i<c.length && i<core.length; ++i)
            c[i] = (String)core[i].getCourseid();
        for(int i=0; i<s.length && i<support.length; ++i)
            s[i] = (String)support[i].getCourseid();
        for(int i=0; i<e.length && i<elective.length; ++i)
            e[i] = (String)elective[i].getCourseid();
        for(int i=0; i<aa.length && i<areaa.length; ++i)
            aa[i] = (String)areaa[i].getCourseid();
        for(int i=0; i<ab.length && i<areab.length; ++i)
            ab[i] = (String)areab[i].getCourseid();
        for(int i=0; i<ac.length && i<areac.length; ++i)
            ac[i] = (String)areac[i].getCourseid();
        for(int i=0; i<ad.length && i<aread.length; ++i)
            ad[i] = (String)aread[i].getCourseid();
        for(int i=0; i<ae.length && i<areae.length; ++i)
            ae[i] = (String)areae[i].getCourseid();
        
        int cnt=0;
        c = filterOutCompletedCourse(c);
        s = filterOutCompletedCourse(s);
        e = filterOutCompletedCourse(e);
        aa = filterOutCompletedCourse(aa);
        ab = filterOutCompletedCourse(ab);
        ac = filterOutCompletedCourse(ac);
        ad = filterOutCompletedCourse(ad);
        ae = filterOutCompletedCourse(ae);
        

        c = filterOutReqNeeded(major, degree, c);
        s = filterOutReqNeeded(major, degree, s);
        e = filterOutReqNeeded(major, degree, e);
        aa = filterOutReqNeeded(major, degree, aa);
        ab = filterOutReqNeeded(major, degree, ab);
        ac = filterOutReqNeeded(major, degree, ac);
        ad = filterOutReqNeeded(major, degree, ad);
        ae = filterOutReqNeeded(major, degree, ae);

        
        cnt = c.length+s.length+e.length+aa.length+ab.length+ac.length+ad.length+ae.length;
        String[] courseID = new String[cnt+8];
        cnt = 0;
        courseID[cnt++] = "----------Core Courses------------------------------------";
        for(int i=0; i<c.length; ++i)
            courseID[cnt++] = filterInName(c[i]);
        courseID[cnt++] = "----------Elective Courses---------------------------------";
        for(int i=0; i<e.length; ++i)
            courseID[cnt++] = filterInName(e[i]);
        courseID[cnt++] = "----------Support Courses----------------------------------";
        for(int i=0; i<s.length; ++i)
            courseID[cnt++] = filterInName(s[i]);
        courseID[cnt++] = "----------General Education Area A Courses------------------------";
        for(int i=0; i<aa.length; ++i)
            courseID[cnt++] = filterInName(aa[i]);
        courseID[cnt++] = "----------General Education Area B Courses------------------------";
        for(int i=0; i<ab.length; ++i)
            courseID[cnt++] = filterInName(ab[i]);
        courseID[cnt++] = "----------General Education Area C Courses------------------------";
        for(int i=0; i<ac.length; ++i)
            courseID[cnt++] = filterInName(ac[i]);
        courseID[cnt++] = "----------General Education Area D Courses------------------------";
        for(int i=0; i<ad.length; ++i)
            courseID[cnt++] = filterInName(ad[i]);
        courseID[cnt++] = "----------General Education Area E Courses------------------------";
        for(int i=0; i<ae.length; ++i)
            courseID[cnt++] = filterInName(ae[i]);
        jListTimeCourses.setListData(courseID);
        
        
    }
    
    private String[] filterOutCompletedCourse(String list[]){
        ListModel cmodel = jListUpdateCompletedCourses.getModel();
        String completed[] = new String[cmodel.getSize()];
        for(int i=0; i<completed.length; ++i){
            completed[i] = (String)cmodel.getElementAt(i);
        }
        int null_cnt = 0;
        for(int i=0; i<list.length; ++i)
            for(int j=0; j<completed.length; ++j)
                if(completed[j].equals(list[i])){
                    list[i] = null;
                    ++null_cnt;
                }

        String temp[] = new String[list.length];
        for(int i=0; i<list.length; ++i){
            temp[i] = list[i];
        }
        
        list = new String[temp.length-null_cnt];
        for(int i=0, j=0; i<temp.length; ++i)
            if(temp[i]!=null){
                list[j] = temp[i];
                ++j;
            }
        
        return list;
    }
    
    private int[] filterOutCompletedUnits(String list[], int units[]){
        ListModel cmodel = jListUpdateCompletedCourses.getModel();
        String completed[] = new String[cmodel.getSize()];
        for(int i=0; i<completed.length; ++i){
            completed[i] = (String)cmodel.getElementAt(i);
        }
        int null_cnt = 0;
        for(int i=0; i<list.length && i<units.length; ++i)
            for(int j=0; j<completed.length; ++j)
                if(completed[j].equals(list[i])){
                    units[i] = -1;
                    ++null_cnt;
                }

        String temp[] = new String[list.length];
        int itemp[] = new int[units.length];
        for(int i=0; i<list.length && i<units.length; ++i){
            temp[i] = list[i];
            itemp[i] = units[i];
        }
        
        units = new int[itemp.length-null_cnt];
        for(int i=0, j=0; i<itemp.length; ++i)
            if(itemp[i]!=-1){
                units[j] = itemp[i];
                ++j;
            }
        
        return units;
    }
    
    private void resetAllFrame(){
        ListModel empty = jListClear.getModel();
        jListUpdateCompletedCourses.setModel(empty);
        jListInterestInterest.setModel(empty);
        jListTimePlan.setModel(empty);
        jTextFieldUserName.setText(" ");
        jCheckMon.setSelected(false);
        jCheckTue.setSelected(false);
        jCheckWed.setSelected(false);
        jCheckThu.setSelected(false);
        jCheckFri.setSelected(false);
        jCheckSat.setSelected(false);
        jComboBox1.setSelectedIndex(3);
        jComboMonS.setSelectedIndex(0); jComboMonE.setSelectedIndex(13);
        jComboTueS.setSelectedIndex(0); jComboTueE.setSelectedIndex(13);
        jComboWedS.setSelectedIndex(0); jComboWedE.setSelectedIndex(13);
        jComboThuS.setSelectedIndex(0); jComboThuE.setSelectedIndex(13);
        jComboFriS.setSelectedIndex(0); jComboFriE.setSelectedIndex(13);
        jComboSatS.setSelectedIndex(0); jComboSatE.setSelectedIndex(9);
        globalFilename = null;
        jLabelWelcome2.setText("Please make a selection...");
        jLabelResultName.setText("Welcome to your Academic Plan.");
    }
    
    private void hideAllFrame(){
        jFrameStart.setVisible(false);
        jFrameUpdate.setVisible(false);
        jFrameMode.setVisible(false);
        jFrameInterests.setVisible(false);
        jFrameTime.setVisible(false);
        jFrameAcademicResults.setVisible(false);
        jFrameQuarterlyPlan.setVisible(false);
    }
    
    private void openFile(){
        javax.swing.JFileChooser jFileChooserOpen = new javax.swing.JFileChooser();
        int result = jFileChooserOpen.showOpenDialog(null);
        if(result == javax.swing.JFileChooser.APPROVE_OPTION){
            if(jFileChooserOpen.getSelectedFile()!=null) {
                File file = jFileChooserOpen.getSelectedFile();
                loadProfile(file.getPath());
                hideAllFrame();
                jFrameMode.setVisible(true);
            }
        }
    }
    
    private void newProfile(){
        resetAllFrame();
        hideAllFrame();
        jFrameUpdate.setVisible(true);
    }
    
    private void viewWelcome(){
        hideAllFrame();
        jFrameStart.setVisible(true);
    }
    
    private void viewMode(){
        hideAllFrame();
        jFrameMode.setVisible(true);
    }
    
    private void viewAuthor(){
        javax.swing.JOptionPane.showMessageDialog(null,
            "<html><font size=5>" +
                "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Vahidi, Mehrak - Design<br>"+ 
                "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Vuong, Long Kim - Dev<br>" +
                "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Zhang, Yuhan - Eval<br>"+
                "</font>" +
                "<font size=4>"+
                "<center>"+
                "CS 570 - HCI<br>"+
                "</center>"+
                "</font>" +
                "<br>"+
                "<br>"+
                "<u>Program Description:<br></u>" +
                "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The application is designed to give college students suggestions about<br>"+
                "taking classes based on their interests and intents. The application will store current<br>"+
                "academic data about classes, and their relationships to the major. User (a student)<br>"+
                "will provide a list of required classes by his/her major, and pick a set of classes s/he<br>"+
                "intends to take, and the class load they desire. The application will try to meet the<br>"+
                "criteria to generate a schedule for the up-comming quarters.<br>"+
                "<br>"+
                "<u>Notes:<br></u>" +
                "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1. Complier: Java SDK 6<br>" +
                "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2. GUI Created with NetBeans IDE v6.x<br>" +
                "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3. Database: MS Access - JDBC<br>" +
                "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4. LOG: http://code.google.com/p/collegeclassplanner/updates/list<br>" +
                "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Last Accessed Dec. 2009)<br>"+
                "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5. SVN: https://collegeclassplanner.googlecode.com/svn <br>" +
                "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Last Accessed Dec. 2009)<br>"+
                "<br></html>",
                "Author & Program Info.", javax.swing.JOptionPane.PLAIN_MESSAGE);
        
    }

    
    private void viewQuarterlyPlanResults(){
        hideAllFrame();
        jFrameTime.setVisible(true);
    }

    private void viewAcademicPlanResults(){
        hideAllFrame();
        jFrameInterests.setVisible(true);
    }
    
    private void viewProfileResults(){
        hideAllFrame();
        jFrameUpdate.setVisible(true);
    }
    
    private void insertIntoPlanList(){
        String s = (String)jListTimeCourses.getSelectedValue();
        if(!jListTimeCourses.isSelectionEmpty()){
            if(s.charAt(0)!='-'){
                s = filterOutName(s);
                if(isInPlanList(s)){
                    String message = "["+s+"] already in the plan list. \nKeep duplicates in the list?";
                    String title = "Duplicate Found";
                    int reply = javax.swing.JOptionPane.showConfirmDialog(null, message, title, javax.swing.JOptionPane.YES_NO_OPTION);
                    if (reply == javax.swing.JOptionPane.YES_OPTION){
                        ListModel compl = jListTimePlan.getModel();
                        String sa[] = new String[compl.getSize()+1];
                        for(int i=0; i<compl.getSize(); ++i){
                            sa[i] = (String)compl.getElementAt(i);
                        }
                        sa[sa.length-1] = s;
                        jListTimePlan.setListData(sa);
                    }
                }else{
                    ListModel compl = jListTimePlan.getModel();
                    String sa[] = new String[compl.getSize()+1];
                    for(int i=0; i<compl.getSize(); ++i){
                        sa[i] = (String)compl.getElementAt(i);
                    }
                    sa[sa.length-1] = s;
                    jListTimePlan.setListData(sa);
                }
                
                
            }else if(s.charAt(0)=='-'){
                javax.swing.JOptionPane.showMessageDialog(null,
                    "You have selected the Course Category.\n"+
                    "Please select a Class from the Course List.");
            }
        }else{
                javax.swing.JOptionPane.showMessageDialog(null, 
                    "Please select a course from the Course List \n"+
                    "located on the left-hand side.");
        }
        jListTimeCourses.clearSelection();
        
    }
    
    private boolean isInPlanList(String s){
        ListModel plist = jListTimePlan.getModel();
        for(int i=0; i<plist.getSize(); ++i){
            if(s.compareTo((String)plist.getElementAt(i))==0){
                return true;
            }
        }
        return false;
    }
    
    private void removePlanList(){
        ListModel compl = jListTimePlan.getModel();
        if(compl.getSize()>0){
            String olds[] = new String[compl.getSize()];
            String news[] = { "" };
            if(olds.length>1){
                news = new String[compl.getSize()-1];
            }
            for(int i=0; i<olds.length; ++i){
                olds[i] = ""+compl.getElementAt(i);
            }
            if(olds.length>1 && !jListTimePlan.isSelectionEmpty()){
                for(int i=0; i<olds.length; ++i){
                    if(olds[i].compareTo((String)jListTimePlan.getSelectedValue())==0){
                        olds[i] = null;
                        break;
                    }
                }
                for(int i=0,j=0; i<olds.length && j<news.length; ){
                    if(olds[i]!=null){
                        news[j++] = olds[i++];
                    }else{
                        ++i;
                    }
                }
                jListTimePlan.setListData(news);
            }else if(jListTimePlan.isSelectionEmpty()){
                javax.swing.JOptionPane.showMessageDialog(null, 
                    "Please select a course from the Plan Course List \n"+
                    "located on the right-hand side.");
            }else{
                jListTimePlan = new javax.swing.JList();
                jListTimePlan.setBorder(javax.swing.BorderFactory.createTitledBorder("Please Rank..."));
                jListTimePlan.setFont(new java.awt.Font("Tahoma", 0, 15));
                jListTimePlan.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
                jScrollPane11.setViewportView(jListTimePlan);        
            }
            
        }
    }
    
    private void moveUpTimePlanList(){
        ListModel compl = jListTimePlan.getModel();
        if(!jListTimePlan.isSelectionEmpty()){
            int selected = jListTimePlan.getSelectedIndex();
            if(selected==0){
                jListTimePlan.clearSelection();
            }else{
                String aList[] = new String[compl.getSize()];
                for(int i=0; i<aList.length; ++i){
                    aList[i] = (String)compl.getElementAt(i);
                }
                String temp = aList[selected];
                aList[selected] = aList[selected-1];
                aList[selected-1] = temp;
                jListTimePlan.setListData(aList);
                jListTimePlan.setSelectedIndex(selected-1);
            }
        }
    }
    
    private void moveDownTimePlanList(){
        ListModel compl = jListTimePlan.getModel();
        if(!jListTimePlan.isSelectionEmpty()){
            int selected = jListTimePlan.getSelectedIndex();
            if(selected==compl.getSize()-1){
                jListTimePlan.clearSelection();
            }else{
                String aList[] = new String[compl.getSize()];
                for(int i=0; i<aList.length; ++i){
                    aList[i] = (String)compl.getElementAt(i);
                }
                String temp = aList[selected];
                aList[selected] = aList[selected+1];
                aList[selected+1] = temp;
                jListTimePlan.setListData(aList);
                jListTimePlan.setSelectedIndex(selected+1);
            }
        }
    }
    
    private void loadQuarterlyPlans(){
        String quarter="Fall"; int year=2009;
        String course[];
        
        //Schedule Listing #1
        course = quarterlyPlan1();
        if(course[0].equals("")){
            String empty_title[] = { "All courses chosen conflicts with your available time. Please try again." };
            String empty_body[][] = {{""}};
            jTableQuarterly1.setModel(new javax.swing.table.DefaultTableModel(empty_body,empty_title));
        }else{
            String plan1title[] = {"Course ID", "Course Title", "Room", "Day", "Time", "Instructor"};
            String plan1data[][] = new String[course.length][6];
            for(int i=0; i<course.length; ++i){
                plan1data[i][0] = course[i];
                ObjCourse objC = db.getCourse(course[i]);
                plan1data[i][1] = objC.getName();
                ObjOffering objOff = db.getOfferingCondition(quarter, year, course[i]);
                plan1data[i][2] = objOff.room;
                String start="", end="", day="";
                for(int k=1; k<objOff.days.length; ++k){
                   if(objOff.days[k][0]!=2400){
                      switch(k){
                        case 0: day += "Sun"; break;
                        case 1: day += "M"; break;
                        case 2: day += "Tu"; break;
                        case 3: day += "W"; break;
                        case 4: day += "Th"; break;
                        case 5: day += "F"; break;
                        case 6: day += "Sat"; break;
                        default: break;
                    }
                      start = matchInt2Time(objOff.days[k][0]);
                        end = matchInt2Time(objOff.days[k][1]);
                    }
                }
                plan1data[i][3] = day;
                plan1data[i][4] = start+"-"+end;
                plan1data[i][5] = objOff.instructor;
            }
            jTableQuarterly1.setModel(new javax.swing.table.DefaultTableModel(plan1data,plan1title));
        }
        //Schedule Listing #1

        
        //Schedule Listing #2
        course = quarterlyPlan2();
        if(course[0].equals("")){
            String empty_title[] = { "All courses chosen conflicts with your available time. Please try again." };
            String empty_body[][] = {{""}};
            jTableQuarterly2.setModel(new javax.swing.table.DefaultTableModel(empty_body,empty_title));
        }else{
            String plan2title[] = {"Course ID", "Course Title", "Room", "Day", "Time", "Instructor"};
            String plan2data[][] = new String[course.length][6];
            for(int i=0; i<course.length; ++i){
                plan2data[i][0] = course[i];
                ObjCourse objC = db.getCourse(course[i]);
                plan2data[i][1] = objC.getName();
                ObjOffering objOff = db.getOfferingCondition(quarter, year, course[i]);
                plan2data[i][2] = objOff.room;
                String start="", end="", day="";
                for(int k=1; k<objOff.days.length; ++k){
                    if(objOff.days[k][0]!=2400){
                        switch(k){
                            case 0: day += "Sun"; break;
                            case 1: day += "M"; break;
                            case 2: day += "Tu"; break;
                            case 3: day += "W"; break;
                            case 4: day += "Th"; break;
                            case 5: day += "F"; break;
                            case 6: day += "Sat"; break;
                            default: break;
                        }
                        start = matchInt2Time(objOff.days[k][0]);
                        end = matchInt2Time(objOff.days[k][1]);
                    }
                }
                plan2data[i][3] = day;
                plan2data[i][4] = start+"-"+end;
                plan2data[i][5] = objOff.instructor;
            }
            jTableQuarterly2.setModel(new javax.swing.table.DefaultTableModel(plan2data,plan2title));
        }
        //Schedule Listing #2

        //Schedule Listing #3
        course = quarterlyPlan3();
        if(course[0].equals("")){
            String empty_title[] = { "All courses chosen conflicts with your available time. Please try again." };
            String empty_body[][] = {{""}};
            jTableQuarterly3.setModel(new javax.swing.table.DefaultTableModel(empty_body,empty_title));
        }else{
            String plan3title[] = {"Course ID", "Course Title", "Room", "Day", "Time", "Instructor"};
            String plan3data[][] = new String[course.length][6];
            for(int i=0; i<course.length; ++i){
                plan3data[i][0] = course[i];
                ObjCourse objC = db.getCourse(course[i]);
                plan3data[i][1] = objC.getName();
                ObjOffering objOff = db.getOfferingCondition(quarter, year, course[i]);
                plan3data[i][2] = objOff.room;
                String start="", end="", day="";
                for(int k=1; k<objOff.days.length; ++k){
                    if(objOff.days[k][0]!=2400){
                        switch(k){
                            case 0: day += "Sun"; break;
                            case 1: day += "M"; break;
                            case 2: day += "Tu"; break;
                            case 3: day += "W"; break;
                            case 4: day += "Th"; break;
                            case 5: day += "F"; break;
                            case 6: day += "Sat"; break;
                            default: break;
                        }
                        start = matchInt2Time(objOff.days[k][0]);
                        end = matchInt2Time(objOff.days[k][1]);
                    }
                }
                plan3data[i][3] = day;
                plan3data[i][4] = start+"-"+end;
                plan3data[i][5] = objOff.instructor;
            }
            jTableQuarterly3.setModel(new javax.swing.table.DefaultTableModel(plan3data,plan3title));
        }
        //Schedule Listing #38
/*                
        //Schedule Listing #2
        String plan2title[] = {"Course ID", "Course Title", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday"};
        String plan2data[][] = new String[course.length][8];
        for(int i=0; i<course.length; ++i){
            plan2data[i][0] = course[i];
            ObjCourse objC = db.getCourse(course[i]);
            plan2data[i][1] = objC.getName();

            ObjOffering objOff = db.getOfferingCondition(quarter, year, course[i]);
            for(int k=1; k<objOff.days.length-1; ++k){
                if(objOff.days[k][0]!=2400){
                    plan2data[i][k+1] = matchInt2Time(objOff.days[k][0])+"-"+matchInt2Time(objOff.days[k][1]);
                }
            }
        }
        jTableQuarterly2.setModel(new javax.swing.table.DefaultTableModel(plan2data,plan2title));
        //Schedule Listing #2
*/
 }
    
    private String[] quarterlyPlan1(){
        int START=0, END=1, SUN=0, MON=1, TUE=2, WED=3, THU=4, FRI=5, SAT=6;
        QuarterlyPlan qp = new QuarterlyPlan();  //quarterPlan1(String selection[], ObjOffering off[], int avail[][]
        ListModel selectedModel = jListTimePlan.getModel();
        String selected[] =  new String[selectedModel.getSize()];
        for(int i=0; i<selected.length; ++i){
            selected[i] = (String)selectedModel.getElementAt(i);
        }
        ObjOffering fall2009[] = db.getOffering("Fall", 2009);
        int avail[][] = new int[7][2];
        avail[SUN][START]=2400; avail[SUN][END]=-1;
        if(jCheckMon.isSelected()){
            avail[MON][START]=2400; avail[MON][END]=-1;
        }else{
            avail[MON][START] = matchTime2Int( (String)jComboMonS.getSelectedItem() );
            avail[MON][END]   = matchTime2Int( (String)jComboMonE.getSelectedItem() );
        }
        if(jCheckTue.isSelected()){
            avail[TUE][START]=2400; avail[TUE][END]=-1;
        }else{
            avail[TUE][START] = matchTime2Int( (String)jComboTueS.getSelectedItem() );
            avail[TUE][END]   = matchTime2Int( (String)jComboTueE.getSelectedItem() );
        }
        if(jCheckWed.isSelected()){
            avail[WED][START]=2400; avail[WED][END]=-1;
        }else{
            avail[WED][START] = matchTime2Int( (String)jComboWedS.getSelectedItem() );
            avail[WED][END]   = matchTime2Int( (String)jComboWedE.getSelectedItem() );
        }
        if(jCheckThu.isSelected()){
            avail[THU][START]=2400; avail[THU][END]=-1;
        }else{
            avail[THU][START] = matchTime2Int( (String)jComboThuS.getSelectedItem() );
            avail[THU][END]   = matchTime2Int( (String)jComboThuE.getSelectedItem() );
        }
        if(jCheckFri.isSelected()){
            avail[FRI][START]=2400; avail[FRI][END]=-1;
        }else{
            avail[FRI][START] = matchTime2Int( (String)jComboFriS.getSelectedItem() );
            avail[FRI][END]   = matchTime2Int( (String)jComboFriE.getSelectedItem() );
        }
        if(jCheckSat.isSelected()){
            avail[SAT][START]=2400; avail[SAT][END]=-1;
        }else{
            avail[SAT][START] = matchTime2Int( (String)jComboSatS.getSelectedItem() );
            avail[SAT][END]   = matchTime2Int( (String)jComboSatE.getSelectedItem() );
        }
        return qp.quarterPlan1(selected,fall2009,avail);
    }
    
    private String[] quarterlyPlan2(){
        int START=0, END=1, SUN=0, MON=1, TUE=2, WED=3, THU=4, FRI=5, SAT=6;
        QuarterlyPlan qp = new QuarterlyPlan();
        ListModel selectedModel = jListTimePlan.getModel();
        String selected[] =  new String[selectedModel.getSize()];
        for(int i=0; i<selected.length; ++i){
            selected[i] = (String)selectedModel.getElementAt(selected.length-i-1);
        }
        ObjOffering fall2009[] = db.getOffering("Fall", 2009);
        int avail[][] = new int[7][2];
        avail[SUN][START]=2400; avail[SUN][END]=-1;
        if(jCheckMon.isSelected()){
            avail[MON][START]=2400; avail[MON][END]=-1;
        }else{
            avail[MON][START] = matchTime2Int( (String)jComboMonS.getSelectedItem() );
            avail[MON][END]   = matchTime2Int( (String)jComboMonE.getSelectedItem() );
        }
        if(jCheckTue.isSelected()){
            avail[TUE][START]=2400; avail[TUE][END]=-1;
        }else{
            avail[TUE][START] = matchTime2Int( (String)jComboTueS.getSelectedItem() );
            avail[TUE][END]   = matchTime2Int( (String)jComboTueE.getSelectedItem() );
        }
        if(jCheckWed.isSelected()){
            avail[WED][START]=2400; avail[WED][END]=-1;
        }else{
            avail[WED][START] = matchTime2Int( (String)jComboWedS.getSelectedItem() );
            avail[WED][END]   = matchTime2Int( (String)jComboWedE.getSelectedItem() );
        }
        if(jCheckThu.isSelected()){
            avail[THU][START]=2400; avail[THU][END]=-1;
        }else{
            avail[THU][START] = matchTime2Int( (String)jComboThuS.getSelectedItem() );
            avail[THU][END]   = matchTime2Int( (String)jComboThuE.getSelectedItem() );
        }
        if(jCheckFri.isSelected()){
            avail[FRI][START]=2400; avail[FRI][END]=-1;
        }else{
            avail[FRI][START] = matchTime2Int( (String)jComboFriS.getSelectedItem() );
            avail[FRI][END]   = matchTime2Int( (String)jComboFriE.getSelectedItem() );
        }
        if(jCheckSat.isSelected()){
            avail[SAT][START]=2400; avail[SAT][END]=-1;
        }else{
            avail[SAT][START] = matchTime2Int( (String)jComboSatS.getSelectedItem() );
            avail[SAT][END]   = matchTime2Int( (String)jComboSatE.getSelectedItem() );
        }
        return qp.quarterPlan1(selected,fall2009,avail);
    }
    
    private String[] quarterlyPlan3(){
        int START=0, END=1, SUN=0, MON=1, TUE=2, WED=3, THU=4, FRI=5, SAT=6;
        QuarterlyPlan qp = new QuarterlyPlan();
        ListModel selectedModel = jListTimePlan.getModel();
        String selected[] =  new String[selectedModel.getSize()];
        for(int i=0; i<selected.length; ++i){
            selected[i] = (String)selectedModel.getElementAt(i);
        }
        java.util.Arrays.sort(selected);
        ObjOffering fall2009[] = db.getOffering("Fall", 2009);
        int avail[][] = new int[7][2];
        avail[SUN][START]=2400; avail[SUN][END]=-1;
        if(jCheckMon.isSelected()){
            avail[MON][START]=2400; avail[MON][END]=-1;
        }else{
            avail[MON][START] = matchTime2Int( (String)jComboMonS.getSelectedItem() );
            avail[MON][END]   = matchTime2Int( (String)jComboMonE.getSelectedItem() );
        }
        if(jCheckTue.isSelected()){
            avail[TUE][START]=2400; avail[TUE][END]=-1;
        }else{
            avail[TUE][START] = matchTime2Int( (String)jComboTueS.getSelectedItem() );
            avail[TUE][END]   = matchTime2Int( (String)jComboTueE.getSelectedItem() );
        }
        if(jCheckWed.isSelected()){
            avail[WED][START]=2400; avail[WED][END]=-1;
        }else{
            avail[WED][START] = matchTime2Int( (String)jComboWedS.getSelectedItem() );
            avail[WED][END]   = matchTime2Int( (String)jComboWedE.getSelectedItem() );
        }
        if(jCheckThu.isSelected()){
            avail[THU][START]=2400; avail[THU][END]=-1;
        }else{
            avail[THU][START] = matchTime2Int( (String)jComboThuS.getSelectedItem() );
            avail[THU][END]   = matchTime2Int( (String)jComboThuE.getSelectedItem() );
        }
        if(jCheckFri.isSelected()){
            avail[FRI][START]=2400; avail[FRI][END]=-1;
        }else{
            avail[FRI][START] = matchTime2Int( (String)jComboFriS.getSelectedItem() );
            avail[FRI][END]   = matchTime2Int( (String)jComboFriE.getSelectedItem() );
        }
        if(jCheckSat.isSelected()){
            avail[SAT][START]=2400; avail[SAT][END]=-1;
        }else{
            avail[SAT][START] = matchTime2Int( (String)jComboSatS.getSelectedItem() );
            avail[SAT][END]   = matchTime2Int( (String)jComboSatE.getSelectedItem() );
        }
        return qp.quarterPlan1(selected,fall2009,avail);
    }
    
    private int matchTime2Int(String time){
        int value = -1;
        if(time.equals("7:00AM")){
            value = 700;
        }else if(time.equals("8:00AM")){
            value = 800;
        }else if(time.equals("9:00AM")){
            value = 900;
        }else if(time.equals("10:00AM")){
            value = 1000;
        }else if(time.equals("11:00AM")){
            value = 1100;
        }else if(time.equals("12:00PM")){
            value = 1200;
        }else if(time.equals("1:00PM")){
            value = 1300;
        }else if(time.equals("2:00PM")){
            value = 1400;
        }else if(time.equals("3:00PM")){
            value = 1500;
        }else if(time.equals("4:00PM")){
            value = 1600;
        }else if(time.equals("5:00PM")){
            value = 1700;
        }else if(time.equals("6:00PM")){
            value = 1800;
        }else if(time.equals("7:00PM")){
            value = 1900;
        }else if(time.equals("8:00PM")){
            value = 2000;
        }else if(time.equals("9:00PM")){
            value = 2100;
        }
        return value;
    }

    private String matchInt2Time(int time){
        String str = null;
        if(time==700){
            str = "7:00AM";
        }else if(time==800){
            str = "8:00AM";
        }else if(time==900){
            str = "9:00AM";
        }else if(time==1000){
            str = "10:00AM";
        }else if(time==1100){
            str = "11:00AM";
        }else if(time==1200){
            str = "12:00PM";
        }else if(time==1300){
            str = "1:00PM";
        }else if(time==1400){
            str = "2:00PM";
        }else if(time==1500){
            str = "3:00PM";
        }else if(time==1600){
            str = "4:00PM";
        }else if(time==1700){
            str = "5:00PM";
        }else if(time==1800){
            str = "6:00PM";
        }else if(time==1900){
            str = "7:00PM";
        }else if(time==2000){
            str = "8:00PM";
        }else if(time==2100){
            str = "9:00PM";
        }
        return str;
    }
    
    private String[] filterOutReqNeeded(String major, String degree, String category[]){
        ListModel cmodel = jListUpdateCompletedCourses.getModel();
        String completed[] = new String[cmodel.getSize()];
        for(int i=0; i<completed.length; ++i){
            completed[i] = (String)cmodel.getElementAt(i);
        }
        
        ObjPrereq pre[] = db.getPrereq(major, degree);
        int cnt=0;
        for(int i=0; i<pre.length; ++i){
            for(int j=0; j<completed.length; ++j){
                if(pre[i].getBefore().equals(completed[j])){
                    pre[i] = null;
                    ++cnt;
                    break;
                }
            }
        }
        ObjPrereq filtered[] = new ObjPrereq[pre.length-cnt];
        for(int i=0, j=0; i<filtered.length && j<pre.length; ++j){
            if(pre[j]!=null){
                filtered[i] = pre[j];
                ++i;
            }
        }
        String omit[] = new String[filtered.length];
        for(int i=0; i<omit.length; ++i){
            omit[i] = (String)filtered[i].getAfter();
        }

        String cat[] = new String[category.length];
        for(int i=0; i<cat.length && i<category.length; ++i){
            cat[i] = category[i];
        }
        cnt=0;
        for(int i=0; i<cat.length; ++i){
            for(int j=0; j<omit.length; ++j){
                if(omit[j].equals(cat[i])){
                    cat[i] = null;
                    ++cnt;
                    break;
                }
            }
        }
        String result[] = new String[cat.length-cnt];
        for(int i=0, j=0; i<result.length && j<cat.length; ++j){
            if(cat[j]!=null){
                result[i] = cat[j];
                ++i;
            }
        }
        return result;
    }
    
    private void quarterlyPlan4(){
        readjFramesForProfile();
/*
        String[] classIds = getStringArrayFromJList(jListTimePlan);
        CourseDescriptor[] courses = new CourseDescriptor[classIds.length];
        for(int i=0;i<courses.length;i++) {
            String id = classIds[i];
            courses[i] = new CourseDescriptor(id, db.getCourse(id).getUnit());
        }
*/
        CourseDescriptor[] courses = {
            new CourseDescriptor("CS 1", 1),
            new CourseDescriptor("CS 2", 2),
            new CourseDescriptor("CS 3", 3),
            new CourseDescriptor("CS 4", 4),
            new CourseDescriptor("CS 5", 5),
            new CourseDescriptor("CS 6", 6),
            new CourseDescriptor("CS 7", 7),
            new CourseDescriptor("CS 8", 8)
        };

        courses[7].addTimePeriod(new TimePeriod(TimePeriod.FRI, 7.5f, 12.0f));
        courses[6].addTimePeriod(new TimePeriod(TimePeriod.FRI, 7.5f, 12.0f));

        try {
            QuarterlySchedule sq = new QuarterlySchedule();
            sq.addQuarterlyScheduleListener( this );
            sq.largestClassFirst(courses, 12, 20);
        } catch(Exception ex) {
            System.err.println(ex);
        }
    }
    
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.ButtonGroup buttonGroupDegree;
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton10;
    private javax.swing.JButton jButton13;
    private javax.swing.JButton jButton14;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton3;
    private javax.swing.JButton jButton4;
    private javax.swing.JButton jButton5;
    private javax.swing.JButton jButtonAcademicResiltsBack;
    private javax.swing.JButton jButtonAcdemicResultsFinish;
    private javax.swing.JButton jButtonBookInfo1;
    private javax.swing.JButton jButtonInterestDesc2;
    private javax.swing.JButton jButtonInterestInsert;
    private javax.swing.JButton jButtonInterestRemove;
    private javax.swing.JButton jButtonInterestsNext;
    private javax.swing.JButton jButtonModeAcademic;
    private javax.swing.JButton jButtonModeQuarterly;
    private javax.swing.JButton jButtonModeUpdate;
    private javax.swing.JButton jButtonQuarterlyPlanNext;
    private javax.swing.JButton jButtonStartLoad;
    private javax.swing.JButton jButtonStartNew;
    private javax.swing.JButton jButtonTimeDesc;
    private javax.swing.JButton jButtonTimeInsert;
    private javax.swing.JButton jButtonTimeNext;
    private javax.swing.JButton jButtonTimeRankDown;
    private javax.swing.JButton jButtonTimeRankUp;
    private javax.swing.JButton jButtonTimeRemove;
    private javax.swing.JButton jButtonUpdateNext;
    private javax.swing.JCheckBox jCheckFri;
    private javax.swing.JCheckBox jCheckMon;
    private javax.swing.JCheckBox jCheckSat;
    private javax.swing.JCheckBox jCheckThu;
    private javax.swing.JCheckBox jCheckTue;
    private javax.swing.JCheckBox jCheckWed;
    private javax.swing.JComboBox jComboBox1;
    private javax.swing.JComboBox jComboBoxA1;
    private javax.swing.JComboBox jComboBoxA2;
    private javax.swing.JComboBox jComboBoxA3;
    private javax.swing.JComboBox jComboBoxB1;
    private javax.swing.JComboBox jComboBoxB2;
    private javax.swing.JComboBox jComboBoxB3;
    private javax.swing.JComboBox jComboBoxB4;
    private javax.swing.JComboBox jComboBoxC1;
    private javax.swing.JComboBox jComboBoxC2;
    private javax.swing.JComboBox jComboBoxC3;
    private javax.swing.JComboBox jComboBoxC4;
    private javax.swing.JComboBox jComboBoxD1a;
    private javax.swing.JComboBox jComboBoxD1b;
    private javax.swing.JComboBox jComboBoxD2;
    private javax.swing.JComboBox jComboBoxD3;
    private javax.swing.JComboBox jComboBoxD4;
    private javax.swing.JComboBox jComboBoxE;
    private javax.swing.JComboBox jComboBoxUpdateMajor;
    private javax.swing.JComboBox jComboFriE;
    private javax.swing.JComboBox jComboFriS;
    private javax.swing.JComboBox jComboMonE;
    private javax.swing.JComboBox jComboMonS;
    private javax.swing.JComboBox jComboSatE;
    private javax.swing.JComboBox jComboSatS;
    private javax.swing.JComboBox jComboThuE;
    private javax.swing.JComboBox jComboThuS;
    private javax.swing.JComboBox jComboTueE;
    private javax.swing.JComboBox jComboTueS;
    private javax.swing.JComboBox jComboWedE;
    private javax.swing.JComboBox jComboWedS;
    private javax.swing.JEditorPane jEditorPane1;
    private javax.swing.JFrame jFrameAcademicPlan;
    private javax.swing.JFrame jFrameAcademicResults;
    private javax.swing.JFrame jFrameDescription;
    private javax.swing.JFrame jFrameHelp;
    private javax.swing.JFrame jFrameInterests;
    private javax.swing.JFrame jFrameMode;
    private javax.swing.JFrame jFrameQuarterlyPlan;
    private javax.swing.JFrame jFrameStart;
    private javax.swing.JFrame jFrameTesting;
    private javax.swing.JFrame jFrameTime;
    private javax.swing.JFrame jFrameUpdate;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel10;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel12;
    private javax.swing.JLabel jLabel13;
    private javax.swing.JLabel jLabel14;
    private javax.swing.JLabel jLabel15;
    private javax.swing.JLabel jLabel16;
    private javax.swing.JLabel jLabel17;
    private javax.swing.JLabel jLabel18;
    private javax.swing.JLabel jLabel19;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel20;
    private javax.swing.JLabel jLabel21;
    private javax.swing.JLabel jLabel22;
    private javax.swing.JLabel jLabel23;
    private javax.swing.JLabel jLabel24;
    private javax.swing.JLabel jLabel25;
    private javax.swing.JLabel jLabel26;
    private javax.swing.JLabel jLabel27;
    private javax.swing.JLabel jLabel28;
    private javax.swing.JLabel jLabel29;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel30;
    private javax.swing.JLabel jLabel31;
    private javax.swing.JLabel jLabel32;
    private javax.swing.JLabel jLabel33;
    private javax.swing.JLabel jLabel34;
    private javax.swing.JLabel jLabel35;
    private javax.swing.JLabel jLabel36;
    private javax.swing.JLabel jLabel37;
    private javax.swing.JLabel jLabel38;
    private javax.swing.JLabel jLabel39;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel47;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JLabel jLabelDescCourseName;
    private javax.swing.JLabel jLabelResultName;
    private javax.swing.JLabel jLabelWelcome;
    private javax.swing.JLabel jLabelWelcome1;
    private javax.swing.JLabel jLabelWelcome2;
    private javax.swing.JList jListClear;
    private javax.swing.JList jListInterestElective;
    private javax.swing.JList jListInterestInterest;
    private javax.swing.JList jListTimeCourses;
    private javax.swing.JList jListTimePlan;
    private javax.swing.JList jListUpdateCompletedCourses;
    private javax.swing.JList jListUpdateMajorCourseAll;
    private javax.swing.JMenuBar jMenuBarInterests;
    private javax.swing.JMenuBar jMenuBarMode;
    private javax.swing.JMenuBar jMenuBarStart;
    private javax.swing.JMenuBar jMenuBarStart4;
    private javax.swing.JMenuBar jMenuBarStart5;
    private javax.swing.JMenuBar jMenuBarStart6;
    private javax.swing.JMenuBar jMenuBarUpdate;
    private javax.swing.JMenu jMenuInterestsFile;
    private javax.swing.JMenu jMenuInterestsInfo;
    private javax.swing.JMenuItem jMenuItem1;
    private javax.swing.JMenuItem jMenuItem2;
    private javax.swing.JMenuItem jMenuItem3;
    private javax.swing.JMenuItem jMenuItem4;
    private javax.swing.JMenuItem jMenuItem5;
    private javax.swing.JMenuItem jMenuItem6;
    private javax.swing.JMenuItem jMenuItem7;
    private javax.swing.JMenuItem jMenuItemAPResults2;
    private javax.swing.JMenuItem jMenuItemAPResults3;
    private javax.swing.JMenuItem jMenuItemAPResults4;
    private javax.swing.JMenuItem jMenuItemAPResults5;
    private javax.swing.JMenuItem jMenuItemAPResults6;
    private javax.swing.JMenuItem jMenuItemAPResults7;
    private javax.swing.JMenuItem jMenuItemAPResults8;
    private javax.swing.JMenuItem jMenuItemInterestsAuthor;
    private javax.swing.JMenuItem jMenuItemInterestsExit;
    private javax.swing.JMenuItem jMenuItemInterestsHelp;
    private javax.swing.JMenuItem jMenuItemInterestsMode;
    private javax.swing.JMenuItem jMenuItemInterestsNew;
    private javax.swing.JMenuItem jMenuItemInterestsOpen;
    private javax.swing.JMenuItem jMenuItemInterestsSave;
    private javax.swing.JMenuItem jMenuItemInterestsSaveas;
    private javax.swing.JMenuItem jMenuItemInterestsWelcome;
    private javax.swing.JMenuItem jMenuItemModeAuthor;
    private javax.swing.JMenuItem jMenuItemModeExit;
    private javax.swing.JMenuItem jMenuItemModeHelp;
    private javax.swing.JMenuItem jMenuItemModeMode;
    private javax.swing.JMenuItem jMenuItemModeNew;
    private javax.swing.JMenuItem jMenuItemModeOpen;
    private javax.swing.JMenuItem jMenuItemModeSave;
    private javax.swing.JMenuItem jMenuItemModeSaveas;
    private javax.swing.JMenuItem jMenuItemModeWelcome;
    private javax.swing.JMenuItem jMenuItemPrint;
    private javax.swing.JMenuItem jMenuItemQPResults2;
    private javax.swing.JMenuItem jMenuItemQPResults3;
    private javax.swing.JMenuItem jMenuItemQPResults4;
    private javax.swing.JMenuItem jMenuItemQPResults5;
    private javax.swing.JMenuItem jMenuItemQPResults6;
    private javax.swing.JMenuItem jMenuItemQPResults7;
    private javax.swing.JMenuItem jMenuItemQPResults8;
    private javax.swing.JMenuItem jMenuItemStartAuthor;
    private javax.swing.JMenuItem jMenuItemStartAuthor4;
    private javax.swing.JMenuItem jMenuItemStartAuthor5;
    private javax.swing.JMenuItem jMenuItemStartAuthor6;
    private javax.swing.JMenuItem jMenuItemStartExit;
    private javax.swing.JMenuItem jMenuItemStartExit4;
    private javax.swing.JMenuItem jMenuItemStartExit5;
    private javax.swing.JMenuItem jMenuItemStartExit6;
    private javax.swing.JMenuItem jMenuItemStartHelp;
    private javax.swing.JMenuItem jMenuItemStartHelp4;
    private javax.swing.JMenuItem jMenuItemStartHelp5;
    private javax.swing.JMenuItem jMenuItemStartHelp6;
    private javax.swing.JMenuItem jMenuItemStartMode;
    private javax.swing.JMenuItem jMenuItemStartMode4;
    private javax.swing.JMenuItem jMenuItemStartMode5;
    private javax.swing.JMenuItem jMenuItemStartMode6;
    private javax.swing.JMenuItem jMenuItemStartNew;
    private javax.swing.JMenuItem jMenuItemStartNew4;
    private javax.swing.JMenuItem jMenuItemStartNew5;
    private javax.swing.JMenuItem jMenuItemStartNew6;
    private javax.swing.JMenuItem jMenuItemStartOpen;
    private javax.swing.JMenuItem jMenuItemStartOpen4;
    private javax.swing.JMenuItem jMenuItemStartOpen5;
    private javax.swing.JMenuItem jMenuItemStartOpen6;
    private javax.swing.JMenuItem jMenuItemStartSave;
    private javax.swing.JMenuItem jMenuItemStartSave4;
    private javax.swing.JMenuItem jMenuItemStartSave5;
    private javax.swing.JMenuItem jMenuItemStartSave6;
    private javax.swing.JMenuItem jMenuItemStartSaveas;
    private javax.swing.JMenuItem jMenuItemStartSaveas4;
    private javax.swing.JMenuItem jMenuItemStartSaveas5;
    private javax.swing.JMenuItem jMenuItemStartSaveas6;
    private javax.swing.JMenuItem jMenuItemStartWelcome;
    private javax.swing.JMenuItem jMenuItemStartWelcome4;
    private javax.swing.JMenuItem jMenuItemStartWelcome5;
    private javax.swing.JMenuItem jMenuItemStartWelcome6;
    private javax.swing.JMenuItem jMenuItemUpdateAuthor;
    private javax.swing.JMenuItem jMenuItemUpdateExit;
    private javax.swing.JMenuItem jMenuItemUpdateHelp;
    private javax.swing.JMenuItem jMenuItemUpdateMode;
    private javax.swing.JMenuItem jMenuItemUpdateNew;
    private javax.swing.JMenuItem jMenuItemUpdateOpen;
    private javax.swing.JMenuItem jMenuItemUpdateSave;
    private javax.swing.JMenuItem jMenuItemUpdateSaveas;
    private javax.swing.JMenuItem jMenuItemUpdateWelcome;
    private javax.swing.JMenu jMenuModeFile;
    private javax.swing.JMenu jMenuModeInfo;
    private javax.swing.JMenu jMenuModeView;
    private javax.swing.JMenu jMenuStartFile;
    private javax.swing.JMenu jMenuStartFile4;
    private javax.swing.JMenu jMenuStartFile5;
    private javax.swing.JMenu jMenuStartFile6;
    private javax.swing.JMenu jMenuStartInfo;
    private javax.swing.JMenu jMenuStartInfo4;
    private javax.swing.JMenu jMenuStartInfo5;
    private javax.swing.JMenu jMenuStartInfo6;
    private javax.swing.JMenu jMenuStartView;
    private javax.swing.JMenu jMenuStartView1;
    private javax.swing.JMenu jMenuStartView2;
    private javax.swing.JMenu jMenuStartView4;
    private javax.swing.JMenu jMenuStartView5;
    private javax.swing.JMenu jMenuStartView6;
    private javax.swing.JMenu jMenuUpdateFile;
    private javax.swing.JMenu jMenuUpdateInfo;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel10;
    private javax.swing.JPanel jPanel12;
    private javax.swing.JPanel jPanel1222;
    private javax.swing.JPanel jPanel13;
    private javax.swing.JPanel jPanel14;
    private javax.swing.JPanel jPanel15;
    private javax.swing.JPanel jPanel16;
    private javax.swing.JPanel jPanel17;
    private javax.swing.JPanel jPanel18;
    private javax.swing.JPanel jPanel19;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel20;
    private javax.swing.JPanel jPanel21;
    private javax.swing.JPanel jPanel22;
    private javax.swing.JPanel jPanel23;
    private javax.swing.JPanel jPanel24;
    private javax.swing.JPanel jPanel25;
    private javax.swing.JPanel jPanel26;
    private javax.swing.JPanel jPanel27;
    private javax.swing.JPanel jPanel28;
    private javax.swing.JPanel jPanel29;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel30;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JPanel jPanel5;
    private javax.swing.JPanel jPanel6;
    private javax.swing.JPanel jPanel7;
    private javax.swing.JPanel jPanel8;
    private javax.swing.JPanel jPanel833;
    private javax.swing.JPanel jPanel9;
    private javax.swing.JPanel jPanelStartButtons;
    private javax.swing.JPanel jPanelStartButtons1;
    private javax.swing.JPanel jPanelStartMessage;
    private javax.swing.JPanel jPanelStartMessage1;
    private javax.swing.JPopupMenu jPopupMenuPrint;
    private javax.swing.JRadioButton jRadioButtonExte;
    private javax.swing.JRadioButton jRadioButtonPost;
    private javax.swing.JRadioButton jRadioButtonUndg;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane10;
    private javax.swing.JScrollPane jScrollPane11;
    private javax.swing.JScrollPane jScrollPane12;
    private javax.swing.JScrollPane jScrollPane13;
    private javax.swing.JScrollPane jScrollPane14;
    private javax.swing.JScrollPane jScrollPane15;
    private javax.swing.JScrollPane jScrollPane16;
    private javax.swing.JScrollPane jScrollPane17;
    private javax.swing.JScrollPane jScrollPane18;
    private javax.swing.JScrollPane jScrollPane19;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JScrollPane jScrollPane20;
    private javax.swing.JScrollPane jScrollPane21;
    private javax.swing.JScrollPane jScrollPane22;
    private javax.swing.JScrollPane jScrollPane23;
    private javax.swing.JScrollPane jScrollPane24;
    private javax.swing.JScrollPane jScrollPane25;
    private javax.swing.JScrollPane jScrollPane26;
    private javax.swing.JScrollPane jScrollPane3;
    private javax.swing.JScrollPane jScrollPane4;
    private javax.swing.JScrollPane jScrollPane5;
    private javax.swing.JScrollPane jScrollPane6;
    private javax.swing.JScrollPane jScrollPane7;
    private javax.swing.JScrollPane jScrollPane8;
    private javax.swing.JScrollPane jScrollPane9;
    private javax.swing.JSeparator jSeparator1;
    private javax.swing.JSeparator jSeparator10;
    private javax.swing.JSeparator jSeparator11;
    private javax.swing.JSeparator jSeparator12;
    private javax.swing.JSeparator jSeparator13;
    private javax.swing.JSeparator jSeparator14;
    private javax.swing.JSeparator jSeparator16;
    private javax.swing.JSeparator jSeparator17;
    private javax.swing.JSeparator jSeparator18;
    private javax.swing.JSeparator jSeparator19;
    private javax.swing.JSeparator jSeparator2;
    private javax.swing.JSeparator jSeparator20;
    private javax.swing.JSeparator jSeparator21;
    private javax.swing.JSeparator jSeparator22;
    private javax.swing.JSeparator jSeparator3;
    private javax.swing.JSeparator jSeparator4;
    private javax.swing.JSeparator jSeparator5;
    private javax.swing.JSeparator jSeparator6;
    private javax.swing.JSeparator jSeparator7;
    private javax.swing.JSeparator jSeparator8;
    private javax.swing.JSeparator jSeparator9;
    private javax.swing.JTable jTableQuarterly1;
    private javax.swing.JTable jTableQuarterly2;
    private javax.swing.JTable jTableQuarterly3;
    private javax.swing.JTable jTableRow1Col1;
    private javax.swing.JTable jTableRow1Col2;
    private javax.swing.JTable jTableRow1Col3;
    private javax.swing.JTable jTableRow2Col1;
    private javax.swing.JTable jTableRow2Col2;
    private javax.swing.JTable jTableRow2Col3;
    private javax.swing.JTable jTableRow3Col1;
    private javax.swing.JTable jTableRow3Col2;
    private javax.swing.JTable jTableRow3Col3;
    private javax.swing.JTable jTableRow4Col1;
    private javax.swing.JTable jTableRow4Col2;
    private javax.swing.JTable jTableRow4Col3;
    private javax.swing.JTextArea jTextArea1;
    private javax.swing.JTextArea jTextArea2;
    private javax.swing.JTextArea jTextAreaDesc;
    private javax.swing.JTextField jTextFieldUserName;
    // End of variables declaration//GEN-END:variables

    private void clearJTable(JTable jtable) {
        TableModel model = jtable.getModel();
        int rowLimit = model.getRowCount();
        int colLimit = model.getColumnCount();
        for(int i=0;i<rowLimit;i++)
            for(int j=0;j<colLimit;j++)
                model.setValueAt("", i, j);
    }

    public void handleSchedule(CourseDescriptor[] courses, boolean[] selected, int cumUnits) throws Exception {
        JTable[] jtables = {jTableQuarterly1, jTableQuarterly2, jTableQuarterly3} ;
        JTable jtable = jtables[(int)Math.floor(Math.random()*3)];

        clearJTable(jtable);
         TableModel model = jtable.getModel();

         int rowLimit = model.getRowCount();
         int rowIndex = 0;
         for(int i=0;i<selected.length;i++) {
             if(rowIndex>=rowLimit)
                 break;
             if(selected[i]) {
                 model.setValueAt(courses[i].classId, rowIndex, 0);
                 model.setValueAt("class title" + i, rowIndex, 1);
                 rowIndex++;
                 System.out.println( "write at " + rowIndex + ": " + courses[i].classId);
             }
         }

        System.out.println("--------------------------");
        for(int i=0;i<selected.length;i++) {
            if(selected[i]) {
                System.out.println(courses[i].classId + "   " + courses[i].units + " units");
            }
        }
    }

}
